【发布时间】:2011-07-03 12:53:07
【问题描述】:
我正在使用推荐方式升级(使用Upgrade和UpgradeVersion检测产品的旧版本并使用 InstallInitialize
之后的 RemoveExistingProducts问题是,在卸载现有产品期间,我需要将其他属性传递给安装程序以保留现有数据库。有没有办法做到这一点?
【问题讨论】:
标签: installation wix windows-installer
我正在使用推荐方式升级(使用Upgrade和UpgradeVersion检测产品的旧版本并使用 InstallInitialize
之后的 RemoveExistingProducts问题是,在卸载现有产品期间,我需要将其他属性传递给安装程序以保留现有数据库。有没有办法做到这一点?
【问题讨论】:
标签: installation wix windows-installer
如果你是从命令行卸载,你可以使用
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>
检索它们。
【讨论】:
通过 RemoveExistingProducts 删除的所有产品都是一个额外的属性 UPGRADINGPRODUCTCODE。此属性设置为与正在删除此其他产品的安装程序的 ProductCode 匹配。如果您在安装程序被删除时对此有条件,它可以相应地采取行动。如果没有,您将需要设置 UpgradeVersion OnlyDetect 并阻止直到它消失,手动调用它的删除,或类似的解决方法。
【讨论】: