WIX安装条件

时间:2016-11-11 15:11:46

标签: windows wix office365

我为WIX安装程序设置了非常具体的条件,并且到目前为止每次尝试都失败了。

我需要检测

  • 如果使用Anniversary Edition Update更新Windows 10
  • 如果安装了Office 365版本12.0.6965.2092版本

RegistrySearch将为相应的属性提供值,但无论是否满足实际条件,都会触发条件。

<Property Id="OFFICE365DETECT">
    <RegistrySearch Id="Office365Search" Root="HKLM" Key="SOFTWARE\Microsoft\Office\ClickToRun\Configuration" Name="ProductReleaseIds" Type="raw"/>
  </Property>
<Property Id="OFFICE365VERSIONDETECT">
  <RegistrySearch Id="Office365VersionSearch" Root="HKLM" Key="SOFTWARE\Microsoft\Office\ClickToRun\Configuration" Name="ClientVersionToReport" Type="raw" />
</Property>
<!--Windows Anniversary Edition corresponds to CurentBuildNumber 14000 and above-->
<Property Id="WINDOWSANNIVERSARYEDITIONDETECT">
  <RegistrySearch Id="WindowsAnniversarySearch" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Name="CurrentBuildNumber" Type="raw"/>
</Property>

条件检查看起来应该看起来不一样,我知道,但是我找不到这个特定情况的指南。

    <![CDATA[((OFFICE365DETECT = "O365ProPlusRetail" OR OFFICE365DETECT = "O365BusinessRetail" OR OFFICE365DETECT = "O365SmallBusPremRetail" ) AND OFFICE365VERSIONDETECT = "16.0.6965.2092" AND WINDOWSANNIVERSARYEDITIONDETECT = "14393")]]>

我会非常感激任何建议,评论和批评。

1 个答案:

答案 0 :(得分:0)

您无需在注册表中搜索Windows内部版本号 - 您可以在启动条件中使用属性WindowsBuild:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa372813(v=vs.85).aspx

文档不是最新的,但我相信周年纪念版的价值是9600.如果W10周年纪念日是你支持的最低价格,那么说你想要&lt; = 9600更为正常,否则你的设置将无法安装在Windows 10的更高版本上。

Office搜索 - 显而易见的事情是查看注册表,我假设您已经看到值存在。但是,您的搜索可能需要在64位注册表中(使用Win64 =“是”)。您还没有说明您的架构是什么,它可能默认为搜索错误,如WiX文档中所述。