2009-03-25 9 views
20

Estoy tratando de detectar qué versión .NET está instalada con WiX. He intentado:¿Cómo puedo detectar .NET 3.5 en WiX?

<Condition Message='This setup requires the .NET Framework 3.5 or higher.'> 
    <![CDATA[MsiNetAssemblySupport >= "3.5.0.0"]]> 
</Condition> 

Pero eso no va a funcionar, porque la propiedad MsiNetAssemblySupport comprueba la versión de fusion.dll, que no se ha actualizado desde la versión 2.0 de .NET 3.0 o 3.5.

¿Es factible comprobar la presencia de las bibliotecas .NET en el directorio del sistema? ¿Cómo lo haría usando WiX? ¿O hay alguna forma de hacerlo usando el registro?

(me di cuenta de que hay una lista de correo electrónico del usuario WiX, pero esta es la Oughts-- no me gusta la tecnología de 1980, me gustan las cosas que puedo buscar fácilmente.)

+2

Es irónico que todas las respuestas digan la búsqueda en Google. Cuando este es el primer golpe en Google. – trampster

Respuesta

37

Visual Studio -> proyecto WiX - > Agregar referencia -> WixNetFxExtension.dll y luego:

<PropertyRef Id="NETFRAMEWORK35" /> 
<Condition Message="This setup requires the .NET Framework 3.5 to be installed."> 
    Installed OR NETFRAMEWORK35 
</Condition> 

Full details, incluyendo todos .NET version properties disponible en la extensión. También considere si el mensaje de condición debe ser localized.

+0

error LGHT0094: Referencia no resuelta al símbolo 'Propiedad: NETFRAMEWORK35' en la sección 'Producto: *'. – mmr

+0

También tengo que agregar -extensión WiXNetFxExtension a la línea de comando – mmr

+0

@mmr: he aclarado la respuesta, esto es todo lo que tengo que hacer para que funcione. Esto agregará referencia a wixproj, que agrega -explicación WixNetFxExtension automáticamente a la línea de comando. – si618

1

La respuesta parece ser no. No puede (de manera confiable) comprobar si está instalada la versión X de .NET o superior. Solo puede verificar si está instalada una versión .NET específica. Ahora que se lanza .NET 4.0, es molesto que tenga que instalar .NET 3.5 incluso si .NET 4.0 ya está instalado.

Espero que los desarrolladores de WiX encuentren una solución a este problema.

Cuestiones relacionadas