2009-05-25 66 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。

相关问题