ClickOnce从缓存中安装旧程序集

时间:2009-05-25 17:51:17

标签: c# installation clickonce

我正在使用ClickOnce来安装用C#编写的应用程序。一切正常,直到最后一次更新,之后我的应用程序开始结束时出现错误说:

  

无法加载文件或程序集MyAssembly ... HRESULT:0x80131040。

经过一番研究后,我发现我的应用程序的ClickOnce缓存文件夹中有一个旧版本的MyAssembly(C:\ Documents and Settings .. \ Apps \ 2.0 ...)。但是,部署包中存在实际版本。

我还在ClickOnce缓存中的一个独立目录中找到了这个旧版本的MyAssembly,该目录以此程序集命名(加上一些字符)。

在我看来,由于某种原因,ClickOnce从缓存中使用了旧版本的MyAssembly而不是部署包中的新版本。

卸载/安装我的应用程序无济于事。

这怎么可能?

2 个答案:

答案 0 :(得分:2)

我有同样的行为。它在另一个问题中提到了这个问题。从那时起,我们已经多次使用不同的应用程序。一个奇怪的是它在不同的计算机上表现不同。因此,一台计算机可能已经使用新程序集进行了更新,而另一台计算机则复制了旧程序集。

.NET ClickOnce deployment and wrong assemblies called after updated version

这似乎是.NET framework 3.5 SP1中的一个错误。

请参阅Microsoft KB 971052。

答案 1 :(得分:0)

确保加载此旧装配。你可以使用DllProfiler。