【问题标题】:C# Setup Project Installer Not Removing Previous VersionC# 设置项目安装程序不删除以前的版本
【发布时间】:2017-02-28 02:01:44
【问题描述】:

我想编写一个 msi 安装程序,它在运行时会卸载以前的版本。我在 VS 2013 中有一个设置项目,DetectNewerInstalledVersion=True 和 RemovePreviousVersions=True。这是我的工作:

  1. 我更改了版本号(例如从 1.0.3 更改为 1.0.4)。
  2. 我确保 ProductCode 发生变化,而 UpgradeCode 没有变化。
  3. 我右键单击设置项目,然后单击构建。
  4. 我运行 Debug 文件夹中的 msi 文件。

msi 运行良好,但旧的 EXE 仍在程序文件夹中。如果它是全新安装,它会成功安装程序。我做错了什么?

【问题讨论】:

  • 通常情况下,您应该只为发布版本创建安装程序,而调试版本应该仅供本地使用。

标签: c# installation setup-project


【解决方案1】:

我终于找到了答案,我会在这里发布给偶然发现这个问题的人。这是我缺少的一步:

您需要转到项目中的 Properties > AssemblyInfo.cs 并更新 AssemblyVersion 和 AssemblyFileVersion 编号。否则这个项目的 EXE 将不会真正更新。希望这会有所帮助!

【讨论】:

  • Windows Installer 仅使用 AssemblyFileVersion - 无需更改 AssemblyVersion,尤其是在您有需要它的客户端程序时。
  • 我在 VS 2019 的 Properties > Package 下找到了这个,但这个答案让我走上了正确的轨道
【解决方案2】:

为什么不设置自定义操作来备份和删除以前的安装文件夹以提高安全性:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多