【问题标题】:VS2017 Installer project output does not replace the current installationVS2017 Installer项目输出不替换当前安装
【发布时间】:2017-12-28 13:53:52
【问题描述】:

我有一个使用 VS2017 安装项目部署的标准 Windows 窗体应用程序。使用“文件系统”打开安装项目时,我在应用程序文件夹中添加了以下内容:

  1. win 表单应用程序的主要输出。
  2. EPPlus 库的 dll。
  3. 一些 excel 文件。

安装项目可以很好地输出.msi 包。问题是,当我在构建安装项目(当然是在构建源项目之后)运行.msi 输出并运行应用程序时,我看不到我的更新,甚至C:\Program Files .... 目录上的文件也没有被修改。我尝试更改产品代码并增加版本,但它不起作用。我的问题是:

  1. 除了删除并重新安装程序之外,还有什么方法可以让安装程序包真正更新软件的安装?
  2. 无论我更新多少软件,如何避免 #1 中的问题?
  3. 是什么原因以及如何避免此错误“已安装此产品的另一个版本”?我不确定我做了什么让它弹出来。
  4. 如果我希望源代码的某些部分位于单独的 dll 中,是否像添加类库项目并将其输出添加到设置项目一样简单?

非常感谢。

【问题讨论】:

    标签: visual-studio-2017 setup-project visual-studio-setup-proje


    【解决方案1】:

    您进行升级的方式是使用 RemovePreviousVersions 项目设置。步骤是:

    1. 增加安装项目的版本并接受更改,这将包括 ProductCode 的更改。
    2. 确保 RemovePreviousVersions 设置为 true。
    3. UpgradeCode(设置项目属性)需要相同,所以不要更改它。
    4. 增加需要更新的二进制文件的文件版本(这是关于更新版本化二进制文件的标准规则)。

    生成的 MSI 将进行重大升级(在 Windows Installer 术语中)并升级旧版本,用您的新产品 MSI 替换它。请注意,升级仅适用于相同的安装上下文。每个人都不会升级 Just me,因此这将导致程序和功能中有两个条目。执行安装创建详细日志并搜索敌人 FindRelatedProducts 条目将告诉您它是否找到升级。 msiexec /I [msi 文件路径] /l*vx [文本日志文件路径]

    这里有更长的解释: https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/?_ga=2.138201520.1662048302.1514485579-1682631157.1514485579

    这是旧的但相关的。并且没有提到更新二进制文件版本的要求(早期的 VS 安装项目不需要)。

    【讨论】:

    • 非常感谢。我有一个问题,该软件仅供内部使用,不是为客户提供的产品,因此需要进行大量更改并部署给我的同事,是否需要增加版本号?更改产品代码还不够吗?
    • 它没有用。它实际上在“添加/删除程序”菜单中添加了另一个项目。
    • 查看我对跨上下文升级的编辑 - 它们不受支持。
    • 看来我没有升级程序集版本(这应该是你在#4 中的意思),现在升级按预期工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多