我发现有一个属性在RTM中没有设置为“安全”。所以我改了,就像,从
<Property Id="MY_PASSWORD" Hidden="yes" />至
<Property Id="MY_PASSWORD" Secure="yes" Hidden="yes" />然后将其添加到Patch.wxs中,例如
<PropertyRef Id="MY_PASSWORD" />但是,当我在启用日志记录的情况下运行repair时,SecureCustomProperties中没有列出MY_PASSWORD。
我想知道是否可以在Patch中更改它,如果可以,如何更改?
发布于 2015-11-26 02:38:15
可以创建一个将更改MSI表值的补丁,例如属性值,但从您所说的内容看,您实际上并没有创建并应用一个真正的补丁。看起来您只是重新构建了MSI,然后右键单击并使用Repair,并将其称为补丁。除了修复已安装的MSI产品外,此命令不会执行任何操作。它会看到您右键单击的MSI已安装(就像您右键单击原始MSI一样),并修复现有的已安装产品。新的MSI不会添加到系统中。
实际的补丁程序( .msp文件)由补丁程序创建,作为两个MSI文件、数据和MSI表内容之间的增量。对于MSI SDK,它是通过一个.pcp文件和msimsp.exe完成的。您可以查看以下内容,了解有关使用WiX创建修补程序的信息:
http://trentm.com/2007/05/building-msi-patch-packages-msp-with-wix.html
http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html
解决此问题的最简单方法是使用MajorUpgrade元素,并使用具有更高ProductVersion、相同UpgradeCode和新ProductCode的新MSI来升级整个旧产品。
https://stackoverflow.com/questions/33896714
复制相似问题