.net - 使用 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'或其依赖项之一。该系统找不到指定的文件。'
解决方案
如果我理解正确,在更新您的软件期间, NewtonSoft.Json 必须降级。我假设您进行了重大升级(即卸载旧版本,安装新版本)。
在您的 InstallExecute 序列中,您可以在 InstallInitialize 之前(即首先卸载旧版本,安装新版本)或在 InstallFinalize 之后(即先安装新版本,然后卸载旧版本)安排 RemoveExistingProducts。
后者效率更高,但不适用于您的方案,因为它不会用 NewtonSoft.Json 10.0 覆盖 NewtonSoft.Json 11.0。
因此,解决方案是将 RemoveExistingProducts 移到 InstallInitialize 之前。
推荐阅读
- javascript - 我希望在未填写必填字段时不打开模式框
- oracle11g - 我有外键约束的问题
- python - 如何为每列制作具有不同行的多列
- javascript - 使用 javascript/Jquery 在 Gridview 中启用/禁用文本框的问题
- c# - 如何从另一个方法调用取消正在运行的方法。时间:2019-04-01 标签:c#.core 2.2
- javascript - 如何按元素值对对象数组进行排序?
- apache - AMPPS - 文件 /Applications/AMPPS/ampps/softaculous/includes/enduser.php 已损坏
- linux - 如何使用 .pgpass 文件中给出的密码连接到 postgres?
- bash - 从共享库文件中的 bash 函数中获取两个值
- python - Networkx:创建具有给定社区数量的有向无标度图