2009-05-25 67 views
1

我正在使用ClickOnce安裝我用C#編寫的應用程序。一切工作正常,直到最後一次更新後,我的應用程序的開始以錯誤說:ClickOnce從緩存中安裝舊程序集

無法加載文件或程序集MyAssembly ... HRESULT:0x80131040。

經過一番研究,我發現我的應用程序的ClickOnce緩存文件夾(C:\ Documents and Settings .. \ Apps \ 2.0 ...)中有一箇舊版MyAssembly。但是部署包中有一個實際的版本。

我還發現這個舊版本的MyAssembly在ClickOnce緩存中的獨立目錄中,該緩存以該程序集命名(加上一些添加的字符)。

在我看來,出於某種原因,ClickOnce從緩存中使用MyAssembly的舊版本,而不是部署包中的新版本。

卸載/安裝我的應用程序將無濟於事。

這怎麼可能?

回答

2

我有同樣的行爲。它在另一個問題中提到了這個問題。從那以後,它對我們來說已經發生過幾次不同的應用。奇怪的是,它在不同的計算機上表現不同。所以一臺電腦本來可以用新的組件更新,而另一臺電腦則可以複製舊的。

.NET ClickOnce deployment and wrong assemblies called after updated version

這似乎是在.NET Framework 3.5 SP1的錯誤。

請參閱Microsoft KB 971052.

+0

謝謝Fredrik – 2009-12-09 02:11:50

0

確保這個舊的程序集已加載。你可以使用DllProfiler。

相關問題