几年来,我们一直通过 ClickOnce 分发 WPF 应用程序。我正在本地测试即将推出的更新,该更新会将其从 .NET 3.5 升级到 .NET 4.0(已提前警告用户升级其 .NET 版本,如果他们还没有升级)。
我们通过“检查更新”菜单项以编程方式执行 ClickOnce 更新。我发现对于这个特定的更新,它通过 API 成功下载了更新,但是当它尝试安装时,我收到与 Infragistics DLL 相关的错误:
“从文件 InfragisticsWPF4.DataPresenter.v11.1.dll 加载 list 时发生异常: list 可能无效或无法打开文件。”
这会导致应用程序在那里关闭。当我尝试从快捷方式重新启动它时,我得到 ClickOnce 框架自己的“可用更新”对话框,因为应用程序仍然不是最新的 - 当我让它更新时,它成功地重新下载、安装和启动美好的。我已经多次测试了整个过程并且它是一致的。
我不知道这是否与 Infragistics 有任何关系,但作为更新的一部分,几个 Infragistics DLL 从 WPF3 升级到 WPF4。
最佳答案
问题在于从程序集中加载 list ,这与控件的许可逻辑没有任何关系。如果针对正在更新的程序集更改了 .NET 框架,则其他程序集很可能也会出现此问题。
我相信这可能与您遇到的问题相同:
http://connect.microsoft.com/VisualStudio/feedback/details/571570/clickonce-deployment-and-net-4-0-framework
以下问题的一些信息可能有助于调查此问题:
ClickOnce manifest
关于ClickOnce 通过编程更新但不是框架更新因无效 list 错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460489/