【发布时间】:2019-04-29 02:34:43
【问题描述】:
我在 Win 10 中使用 VS 2015 创建了一个 Windows 窗体桌面应用程序。当我发布新版本时,我希望用户能够运行安装程序而无需先卸载任何早期版本。为此,我在 VS 2015 中包含的 InstallShield LE 的常规信息选项卡中创建了一个新的产品代码。这似乎是在旧版本之上安装新版本的唯一方法。 InstallShield 提供的关于如何使用 UpdateCode 创建更新版本的详细说明似乎不起作用。安装后,新旧版本会出现在控制面板-> 程序和功能中显示的列表中。
我为一个新版本创建了一个新的自解压 .exe 安装程序,其中包含对全局版本 2.1.68 的引用,但是当我在另一台机器上的 Win 7 环境中运行它时,它的早期版本 (2.1.62)引用程序集全局版本 2.1.62 已安装并打开特定表单,我收到异常消息
无法加载文件或程序集“全局,版本 = 2.1.62.0,文化 = 中性,PublicKeyToken=a95f9488c29”或其依赖项之一。 找到的程序集的清单定义与程序集引用不匹配。
异常文本:
System.IO.File.LoadException:无法加载文件或程序集 'Global,Version = 2.1.62.0,Culture = Neutral,PublicKeyToken=a95f9488c29 at ...
如果我通过控制面板卸载版本 2.1.62 并安装版本 2.1.68 的应用程序,则不会出现错误。
我检查了对全局 dll 的 C# 引用,它们都指向更新后的 dll。
我希望用户能够安装新版本而无需先卸载旧版本,但似乎 V 2.1.62 安装中的某些内容被转移到较新的安装中,并试图找到旧版本的 Global .dll
【问题讨论】:
标签: c# installation installshield