C# 安装项目安装程序不删除以前的版本

Jak*_*irn 1 c# installation setup-project

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

  1. 我更改了版本号(例如从 1.0.3 到 1.0.4)。
  2. 我确保 ProductCode 更改,而 UpgradeCode 没有更改。
  3. 我右键单击安装项目,然后单击构建。
  4. 我在 Debug 文件夹中运行 msi 文件。

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

Jak*_*irn 5

我终于找到了答案,我会把它贴在这里给那些偶然发现的人。这是我遗漏的一步:

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

  • Windows Installer 仅使用 AssemblyFileVersion - 无需更改 AssemblyVersion,尤其是当您有需要它的客户端程序时。 (2认同)