我在链中定义了以下MSIPackage(Burn 3.6)。
<!-- DacFramework x86-->
<MsiPackage
Id="msi_DacFramework"
SourceFile="..\..\External References\MSI\Microsoft\SSDT\DacFramework\11.1.2825.1.May2013\x86\DACFramework.msi"
InstallCondition="(VersionNT64) OR (NOT VersionNT64)"
DownloadUrl="http://ourURL.com/updates/x86/DACFramework.msi"
Compressed="no"
Vital="yes"
Permanent="yes"
SuppressSignatureVerification="yes"
Visible="yes"/>
根据我的理解,将其设为 Vital 和 Permanent 应该意味着它会在升级到我们的产品时保持安装 - 有问题的MSI是SQL Server组件来自微软,所以我们不会改变它。 InstallCondition 也应该返回True。
正如您可以从标题中猜到的那样,当我们的产品升级时, IS 正在卸载。从日志中,似乎被要求......(REMOVE = ALL)
MSI (s) (D0:18) [17:03:04:781]: Command Line: MSIFASTINSTALL=7 REBOOT=ReallySuppress IGNOREDEPENDENCIES=ALL REMOVE=ALL CURRENTDIRECTORY=C:\Program Files\CompanyName\Product CLIENTUILEVEL=3 CLIENTPROCESSID=4004
...
MSI (s) (D0:18) [17:03:04:781]: PROPERTY CHANGE: Adding REMOVE property. Its value is 'ALL'.
我在MSIPackage定义中错过了什么才能认为它被要求删除?