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

时间:2011-10-21 23:49:33

标签: .net windows-installer install

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

我的版本编号方法最好用这篇文章描述:What are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion?

我没有更改我的安装项目的版本,因为这没有改变,而且在执行此操作时我遇到了太多问题。

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

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.0.0")]

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

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.1.0")]

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

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

  1. 安装MSI
  2. 安装(re:upgrade to)另一个覆盖以前版本的版本(提示或没有提示) 一个。我不想在安装更新之前取消安装。
  3. 我的安装程序项目属性是:

      

    RemovePreviousVersions - True

         

    InstallAllUsers - True

         

    DetectNewerInstalledVersion - False

         

    版本 - 4.3.0

    我尝试过:

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

    任何帮助都会摇滚!

    感谢。

1 个答案:

答案 0 :(得分:5)

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

当你增加版本时,它会提示你是否要更改ProductCode,回答“是”。

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