【问题标题】:"The located assembly's manifest definition does not match the assembly reference" after installing new version安装新版本后“找到的程序集的清单定义与程序集引用不匹配”
【发布时间】: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


    【解决方案1】:

    问题是我没有更新引用global.dll的子项目的版本号,所以安装新版本没有更新那个dll,继续找旧的(v 2.1.62) global.dll 的版本。

    【讨论】:

      猜你喜欢
      • 2018-11-25
      • 2011-08-20
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多