Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WIX办公室检测扩展_Wix_Ms Office_Wix Extension - Fatal编程技术网

WIX办公室检测扩展

WIX办公室检测扩展,wix,ms-office,wix-extension,Wix,Ms Office,Wix Extension,我目前正在编写一个WIX安装程序,它与正在安装的其他产品有一些依赖关系。它在C#中,需要以下依赖项 Office 2010(包括Excel/Word) .NET Framework 3.5 现在对于.NET框架,我可以在wix中使用WixNetFxExtension来表示 <PropertyRef Id="NETFRAMEWORK35_SP_LEVEL"/> 然后在条件中引用此属性 对于不同版本的Office或其单个文件(如Word等),是否有类似的扩展名来执行此操作 我知

我目前正在编写一个WIX安装程序,它与正在安装的其他产品有一些依赖关系。它在C#中,需要以下依赖项

  • Office 2010(包括Excel/Word)
  • .NET Framework 3.5
现在对于.NET框架,我可以在wix中使用WixNetFxExtension来表示

<PropertyRef Id="NETFRAMEWORK35_SP_LEVEL"/>

然后在条件中引用此属性

对于不同版本的Office或其单个文件(如Word等),是否有类似的扩展名来执行此操作


我知道我可以使用自定义操作来实现这一点,但我希望一个简单的方法是这样做,而不是创建自己的自定义操作?

使用@Ciprian给出的答案,您可以简单地设置一个属性,然后根据该属性设置启动条件

<Property Id="OFFICEPATH">
  <RegistrySearch Id="OfficeReg" Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" Name="Path" Type="raw" />
</Property>

<Condition Message="This application requires Microsoft Office. Please install Office then run this installer again.">
      <![CDATA[Installed OR (OFFICEPATH)]]>
    </Condition>


请看一看这篇文章,我真的在寻找我可以使用的wix扩展。实际上,我现在已经创建了自己的扩展,它允许您传入应用程序名,并返回安装的版本。。。我会在清理完我的解决方案后发布它。谢谢你的回答,我真的是在获取应用程序安装的当前版本之后,而不是查询已知的注册表项。我已经通过创建自己的wix扩展解决了这个问题,它允许您传入一个应用程序名,并告诉您它的版本是什么installed@JoeHealy见:截至2016年的清单