.NET MSI安装项目 - 覆盖以前的版本

Rya*_*ier 8 .net install windows-installer

我有一个安装Windows服务的MSI安装程序项目.

我的版本编号方法最好用这篇文章描述:AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?

我没有更改我的安装项目的版本,因为这没有改变,我这样做时遇到了太多问题.

我已经使用以下程序集版本安装了我的服务

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.0.0")]
Run Code Online (Sandbox Code Playgroud)

我刚刚为这个版本构建了一个MSI安装程序:

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.1.0")]
Run Code Online (Sandbox Code Playgroud)

当我运行MSI时,它告诉我需要卸载以前的版本.

我该如何解决这个问题?我最终想做的是:

  1. 安装MSI
  2. 安装(re:upgrade to)另一个覆盖以前版本的版本(提示或没有提示)a.在安装更新之前,我不想卸载.

我的安装程序项目属性是:

RemovePreviousVersions - True

InstallAllUsers - True

DetectNewerInstalledVersion - 错误

版本 - 4.3.0

我尝试过的:

  • 更新项目的程序集版本.但是,这会在"添加删除程序"中创建相同产品的多个版本.不想要我的Windows服务
  • 更改安装程序项目上的版本号.但是在尝试安装任何版本的MSI时会产生很多错误.我甚至收到警告说我正在网络驱动器上安装!(哇).

任何帮助都会摇滚!

谢谢.

Bra*_*ner 5

在setup的安装项目属性中,您需要为每个版本增加"Version"属性,同时保持相同的UpgradeCode.

当您递增版本时,它会提示您是否要更改ProductCode,回答"是".

您还必须具有用于删除先前版本的属性,并检测设置为true的新版本.