【问题标题】:Upgrade uses OnCommit Custom Action from previous installer升级使用以前安装程序中的 OnCommit 自定义操作
【发布时间】:2016-09-08 13:32:31
【问题描述】:

在使用新的 MSI 将我的解决方案从版本 1 升级到 2 时,我注意到配置应用程序的自定义操作之一是使用属于版本 1 的值(在 OnCommit 操作上)

我添加了打印出程序集版本的消息框和日志,并确认在升级过程中,Windows 安装程序正在使用先前 MSI 中的 dll。但是,如果我手动安装较新的 MSI,则会使用正确的自定义操作。

有没有办法解决这个问题?没有找到太多关于它为什么使用之前的自定义操作的信息?

我设置了 RemovePreviousVersions = trueUpgradeCodes 相同,而 ProductCodes 不同。

【问题讨论】:

    标签: c# windows-installer setup-project visual-studio-setup-proje vsinstaller


    【解决方案1】:

    我相信这是一个老错误:

    https://support.microsoft.com/en-us/kb/555184

    我找不到另一篇关于它的支持文章。它可能已被删除,因为它适用于旧版本的安装项目。我认为弯路是重命名程序集和更改其程序集版本。

    问题(正如您可能猜到的)是卸载加载程序集来执行卸载,并且升级安装的程序集在这种情况下(反射加载)确定的加载规则是相同的,所以它确实不加载新程序集,而是使用已加载的旧程序集。这一切都意味着您使用的是非常旧版本的 Visual Studio 安装项目,该项目首先卸载旧产品,然后安装新产品。自(包括)Visual Studio 2008 以来,这不是默认行为,因此我认为您不会在较新版本中遇到问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多