首页 文章

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

提问于
浏览
8

我有一个安装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时,它告诉我需要卸载以前的版本 .

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

  • 安装MSI

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

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

RemovePreviousVersions - True InstallAllUsers - True DetectNewerInstalledVersion - False Version - 4.3.0

我尝试过的:

  • 更新项目的程序集版本 . 但是,这会在“添加删除程序”中创建相同产品的多个版本 . 不想要我的Windows服务

  • 更改安装程序项目的版本号 . 但是在尝试安装任何版本的MSI时会产生很多错误 . 我甚至收到警告说我正在网络驱动器上安装! (哇) .

任何帮助都会摇滚!

谢谢 .

1 回答

  • 5

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

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

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

相关问题