1 votes

Détecter si MSBuild/.net 4 est installé à partir d'un code C# fonctionnant sur 3.5 ?

J'ai une application qui fonctionne sous .net 3.5 SP1 et qui est censée vérifier si .net 4 est installé.

En fait, je suis plus intéressé par le fait que MSBuild v4 soit installé, ce qui se résumerait à une simple File.Exists(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe");

Cependant, à part la fragilité de la version 4.0.30319 (et le Windir, mais c'est facile à résoudre), je me demande s'il n'y a pas un moyen plus approprié, comme une API ?

1voto

Ruben Bartelink Points 23945

J'ai vu cet article de blog mais j'espère qu'un @JaredPar ou autre sera là avec quelque chose de plus net !

(Je cherche toujours un moyen de dériver le répertoire d'installation proprement.

Je soupçonne que pour une version .NET, le bit .buildnumber est garanti de ne pas bouger après la RTM (ou même les SPs).

N'oubliez pas que le bit Framework (par opposition à Framework64) n'est pas nécessairement stable [et comme indiqué dans les commentaires de l'article de blog cité, vous devrez peut-être prendre en compte Wow6432Node pour l'aspect registre de cette question].

Cherchez-vous réellement le chemin d'accès à msbuild.exe ou avez-vous besoin de savoir si .NET 4 est présent ? Les symboles prédéfinis dans MSBuild sont-ils utiles ? La réflexion dans msbuild.exe donne-t-elle quelque chose ?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X