Installation 如何通过msi升级

Installation 如何通过msi升级,installation,windows-installer,upgrade,Installation,Windows Installer,Upgrade,我想通过msi安装程序升级我的产品。 两个msi的升级代码保持不变,因为它是相同的产品系列。即使我更改msi的版本/产品代码以进行更新,它也会告诉我该产品已安装或要求我修复。它从不提供更新选项来替换当前安装 我正在使用Visual Studio 2008 Pro生成msi安装程序当您更改安装项目中的版本属性时,Visual Studio应提示您同时更改产品代码。你必须这样做。然后,还必须将RemovePreviousVersion属性设置为true。确保升级代码保持不变 这可能是最简单的方法,通

我想通过msi安装程序升级我的产品。 两个msi的升级代码保持不变,因为它是相同的产品系列。即使我更改msi的版本/产品代码以进行更新,它也会告诉我该产品已安装或要求我修复。它从不提供更新选项来替换当前安装


我正在使用Visual Studio 2008 Pro生成msi安装程序

当您更改安装项目中的
版本
属性时,Visual Studio应提示您同时更改
产品代码
。你必须这样做。然后,还必须将
RemovePreviousVersion
属性设置为true。确保升级代码保持不变


这可能是最简单的方法,通过阅读你的问题,你可以知道你在寻找什么。请注意,这更多的是卸载,然后重新安装,而不是“升级”本身。

您使用什么工具生成MSI?Visual studio?女巫?还有别的吗?-1都叫“升级”。MSI规则将主要升级定义为卸载/重新安装,并在同一系列升级代码下更改ProductCode。一个次要的升级只改变两个Verison之间不同的组件。@DSims:是的,我熟悉MSI的定义和固有的语义歧义。谢谢你指出这一点。我只提到卸载/重新安装,因为我认为这可能会避免一些混淆。许多人在创建初始安装程序时都会受到这种行为的影响。尽管这被称为升级,但这种语言并不符合大多数非安装人员理解术语的方式。就操作系统而言,这是一个全新的产品。@Dave:很抱歉,太迂腐了。遗憾的是,语义精度对于MSI/Windows安装程序至关重要。这是一个天生脆弱的领域,微软构建它的方式,特定的词汇有特定的技术和业务后果。在我的案例中,它不起作用(VS2010)。我在网上查了一下,发现:说你需要更改主要版本号,但也不行。你知道我这里是否遗漏了什么吗?按照我上一期的说明:如果你使用的是.NET,别忘了增加AssemblyVersion和AssemblyFileVersion。从Kimmo K通过: