metaetiqueta - Extensión de detección de WIX Office
tags de encabezado wix (2)
Actualmente estoy escribiendo un instalador WIX que tiene algunas dependencias en otros productos que se instalan. Está en C # y requiere las siguientes dependencias
- Office 2010 (incluido Excel / Word)
- .NET Framework 3.5
Ahora para .NET Framework puedo usar WixNetFxExtension en wix para decir
<PropertyRef Id="NETFRAMEWORK35_SP_LEVEL"/>
y luego referencia esta propiedad en una condición.
¿Hay una extensión similar para hacer esto para diferentes versiones de Office o sus archivos individuales como Word, etc.
Sé que puedo usar acciones personalizadas para hacer esto, pero quiero que sea simple hacer esto en lugar de crear mis propias acciones personalizadas.
Usando la respuesta dada por @Ciprian, simplemente podría establecer una propiedad y luego tener una condición de lanzamiento basada en la propiedad.
<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>
Terminé creando mi propia WIXExtension para esto y luego simplemente pude llamar a mi método de extensión OfficeVersion ("Word") para instalar la versión de Word, etc.
<Property Id="WORD_VERSION" Value="$(myextension.OfficeVersion(Word))" />
Entonces podría establecer una condición para instalar solo la aplicación si la versión es mayor a 10, por ejemplo.
<Condition Message="This setup requires Word xxxx and Excel xxxx or greater">
<![CDATA[Installed OR (WORD_VERSION AND EXCEL_VERSION >= "10")]]>
</Condition>
Entonces soy libre de escribir mi OfficeVersion para devolver la versión de cualquier aplicación que envíe.
Hay un lugar en el registro que descubrí que contiene esta información para las aplicaciones de Office
HKLM/Software/Classes/Word.Application/CurVer
HKLM/Software/Classes/Excel.Application/CurVer
etc.