首页 > 解决方案 > 使用 MSI 升级软件时出现错误“无法加载文件或程序集”

问题描述

我有两个版本的软件 3.0 和 4.0,它们是使用 MSI 安装程序构建的。其中安装程序 3.0 包含 NewtonSoft.Json 11.0,安装程序 4.0 包含 NewtonSoft.Json 10.0。将我的软件从 3.0 升级到 4.0 时,出现以下错误。我该如何解决这个问题?

'错误 1001。无法加载文件或程序集'NewtonSoft.Json,版本 = 10.0.0.0,文化 = 中性,PublicKeyToke = 30ad4fe6b62a6aeed'或其依赖项之一。该系统找不到指定的文件。'

标签: .netvisual-studiowindows-installer

解决方案


如果我理解正确,在更新您的软件期间, NewtonSoft.Json 必须降级。我假设您进行了重大升级(即卸载旧版本,安装新版本)。

在您的 InstallExecute 序列中,您可以在 InstallInitialize 之前(即首先卸载旧版本,安装新版本)或在 InstallFinalize 之后(即先安装新版本,然后卸载旧版本)安排 RemoveExistingProducts。

后者效率更高,但不适用于您的方案,因为它不会用 NewtonSoft.Json 10.0 覆盖 NewtonSoft.Json 11.0。

因此,解决方案是将 RemoveExistingProducts 移到 InstallInitialize 之前。


推荐阅读