我有一个MSI设置,如下所示:
<Product Id="*" ... UpgradeCode="4207FF3B-5E0D-4311-9DFC-B41AA8DE2965" />
<MajorUpgrade DowngradeErrorMessage="Can't downgrade" />
它按预期工作:
- 安装产品
- 重新编译(有效地生成新的Id)
- 启动新的msi文件会显示更改视图,我可以修复或卸载该产品
很好。但随之而来的是烧伤。
我创造了最简单的捆绑包。我使用标准的引导程序,只添加一个MsiPackage:
<MsiPackage SourceFile="$(var.Setup.TargetPath)" />
问题是,每次重新编译后,我可以在已经安装的产品旁边再次安装该产品,而不会更改任何内容!这会导致重复的ARP条目!
如果我不重新编译并运行两次bundle exe文件,我会得到预期的修改设置屏幕。我该怎么做才能让烧伤后的行为与MSI时的行为相同?
增加捆绑包版本号,Burn将升级前一版本并将其删除。