如何在RemoveExistingProducts期间设置其他属性

时间:2011-02-24 12:19:14

标签: installer wix windows-installer

我正在使用推荐的方式进行升级(使用升级 UpgradeVersion 来检测旧版本的产品并使用 InstallInitialize

之后删除现有产品

问题是,在卸载现有产品时,我需要将其他属性传递给安装程序以保留现有数据库。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

通过 RemoveExistingProducts 接收的所有产品都是一个额外的属性 UPGRADINGPRODUCTCODE 。此属性设置为与正在删除此其他产品的安装程序的 ProductCode 相匹配。如果您在删除安装程序时遇到此情况,则可以采取相应措施。如果没有,您将需要进行UpgradeVersion OnlyDetect 并阻止它直到它消失,手动调用它或类似的解决方法。

答案 1 :(得分:1)

如果要从命令行卸载,可以使用

msiexec /x c:\Example.msi PROPERTY=VALUE

初始化您的属性。

或者,您可以将属性存储在注册表中并使用以下内容:

<Property Id="PROPNAME">
  <RegistrySearch Id="PropNameRegistry" Type="raw" Root="HKLM" Key="Software\MyProduct\MyKey\PropValue" Name="MyPropName" />
</Property>

检索它们。