VS2017安装程序项目输出不会替换当前安装

3bd*_*lla 0 setup-project visual-studio-setup-proje visual-studio-2017

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

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

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

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

非常感谢。

Phi*_*lDW 5

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

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

生成的 MSI 将进行重大升级(在 Windows Installer 术语中)并升级旧版本,并将其替换为新产品 MSI。请注意,升级仅适用于相同的安装上下文。每个人都不会升级“只有我”,因此这将导致“程序”和“功能”中出现两个条目。安装时创建详细日志并搜索 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 设置项目不需要)。