2009-03-25 6 views
20

J'essaie de détecter quelle version .NET est installée en utilisant WiX. J'ai essayé:Comment puis-je détecter .NET 3.5 dans WiX?

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

Mais ça ne marchera pas, parce que la propriété MsiNetAssemblySupport vérifie la version de fusion.dll, qui n'a pas été mis à jour à partir de la version 2.0 dans .NET 3.0 ou 3.5.

Est-il possible de vérifier la présence des bibliothèques .NET dans le répertoire système? Comment ferais-je cela en utilisant WiX? Ou y a-t-il un moyen de le faire en utilisant le registre?

(je me rends compte qu'il ya une liste d'e-mail de l'utilisateur Wix, mais c'est la Oughts-- Je n'aime pas la technologie des années 1980, j'aime des choses que je peux facilement rechercher.)

+2

Il est ironique que toutes les réponses disent recherche sur Google. Quand c'est le premier hit sur Google. – trampster

Répondre

37

Visual Studio -> projet WiX - > Ajouter Référence -> WixNetFxExtension.dll puis:

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

Full details, y compris tous les .NET version properties disponibles dans l'extension. Vérifiez également si le message de condition doit être localized.

+0

erreur LGHT0094: référence non résolue au symbole 'Propriété: NETFRAMEWORK35' dans la section 'Produit: *'. – mmr

+0

Vous devez également ajouter -ext WiXNetFxExtension à la ligne de commande – mmr

+0

@mmr - J'ai clarifié la réponse, c'est tout ce que j'ai à faire pour que cela fonctionne. Cela ajoutera une référence à wixproj, qui ajoute -ext WixNetFxExtension automatiquement à la ligne de commande. – si618

1

La réponse semble être non. Vous ne pouvez pas (de manière fiable) vérifier si .NET Framework version X ou supérieure est installé. Vous pouvez uniquement vérifier si une version .NET spécifique est installée. Maintenant que .NET 4.0 est publié, il est ennuyeux que vous deviez installer .NET 3.5 même si .NET 4.0 est déjà installé. J'espère que les développeurs WiX trouveront une solution à ce problème.

Questions connexes