【问题标题】:ClickOnce installing old assemblies from cacheClickOnce 从缓存中安装旧程序集
【发布时间】:2009-05-25 17:51:16
【问题描述】:

我正在使用 ClickOnce 安装我用 C# 编写的应用程序。一切正常,直到最后一次更新,之后我的应用程序的启动以错误消息结束:

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

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

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

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

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

这怎么可能?

【问题讨论】:

    标签: c# installation clickonce


    【解决方案1】:

    我也有同样的行为。它在另一个问题中提到了这个问题。从那时起,对于我们不同的应用程序来说,它已经发生了好几次。一件奇怪的事情是它在不同的计算机上表现不同。因此,一台计算机可以使用新程序集进行更新,而另一台计算机则复制了旧程序集。

    .NET ClickOnce deployment and wrong assemblies called after updated version

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

    请参阅 Microsoft KB 971052。

    【讨论】:

      【解决方案2】:

      确保已加载此旧程序集。您可以为此使用 DllProfiler。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多