Je mets en place le support .NET 4.0 sur notre serveur CI. J'ai installé .NET 4.0 et les outils .NET du SDK Windows 7.1.
Sur .NET 2.0 et 3.5, cela fonctionnait. Avec .NET 4, lorsque j'exécute l'invite de commande du SDK Windows 7.1 à partir du menu Démarrer, il se plaint de
The x86 compilers are not currently installed. x86-x86
Please go to Add/Remove Programs to update your installation.
.
Setting SDK environment relative to C:\Program Files\Microsoft
SDKs\Windows\v7.1
\.
Targeting Windows Server 2008 x86 Debug
Ensuite, lorsque j'essaye d'exécuter msbuild, j'obtiens:
C:\Program Files\Microsoft SDKs\Windows\v7.1>msbuild
'msbuild' is not recognized as an internal or external command,
operable program or batch file.
C:\Program Files\Microsoft SDKs\Windows\v7.1>
Je ne peux pas croire que l'installation du runtime et du SDK vous laissera avec un système qui ne peut pas exécuter msbuild ... ai-je manqué une étape évidente ou obscure Windows Update, ou est-il temps d'abandonner et de commencer à pirater le chemin du système ?
%VCTools%
la variable d'environnement? Il doit être défini sur un chemin.cl.exe
Existe- t- il dans ce chemin? De plus, êtes-vous sur un Windows non anglais? J'ai entendu quelques rapports de ce problème sur l'installation localisée de Windows.Réponses:
Pour l'activer
msbuild
dans l'invite de commandes , il vous suffit d'ajouter le chemin d'accès à l'installation de .NET 4 Framework sur votre machine à laPATH
variable d'environnement.Vous pouvez accéder aux variables d'environnement en:
PATH
Pour référence, mon chemin était
C:\Windows\Microsoft.NET\Framework\v4.0.30319
Mise à jour du chemin 21/03/18:
À partir de MSBuild 12 (2013) / VS 2013 / .NET 4.5.1+ et versions ultérieures, MSBuild est désormais installé dans le cadre de Visual Studio .
Pour référence, avec VS2015 installé sur ma machine, mon chemin est
C:\Program Files (x86)\MSBuild\14.0\Bin
la source
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
. Voir docs.microsoft.com/en-us/visualstudio/msbuild/…À
Visual Studio 2013
partir de maintenant, faitMSbuild
partie de Visual Studio. Auparavant, MSBuild était installé dans le cadre de. NET Framework.MSBuild est installé directement sous % ProgramFiles% . Ainsi, le chemin d'accès pour MSBuild peut être différent selon la version de Visual Studio.
Car
Visual Studio 2015
, Path ofMSBuild
is"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
Car
Visual Studio 15 Preview
, Path ofMSBuild
is"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"
De plus, de nouvelles propriétés MSBuild ont été ajoutées et certaines ont été modifiées. Pour plus d'informations, regardez ici
Mise à jour 1: VS 2017
L'emplacement de MSBuild a de nouveau changé avec la sortie de Visual Studio 2017 . Le répertoire d'installation se trouve maintenant sous le
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\
. Depuis, j'ai une édition Entreprise, l'emplacement MSBuild de ma machine est"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"
la source
L'utilisation de «l'invite de commande du développeur pour Visual Studio 20XX» au lieu de «cmd» définira automatiquement le chemin de msbuild sans avoir à l'ajouter à vos variables d'environnement.
la source
Votre fichier bat pourrait être comme:
la source
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*proj
ça pourrait le faire, mais notez que le chemin des nouvelles versions de MSBuild (vers 2013) est différent.Pour Visual Studio 2019 (aperçu, au moins), il est maintenant disponible:
J'imagine que le processus sera similaire pour la version officielle 2019.
la source
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
.Pour pouvoir construire avec la syntaxe C # 6, utilisez ceci dans path:
la source
Le
SetEnv.cmd
script que le raccourci «Invite de commandes SDK» exécute vérifiecl.exe
à divers endroits avant de configurer les entrées à ajouterPATH
. Il ne parvient donc pas à ajouter quoi que ce soit si un compilateur C natif n'est pas installé.Pour résoudre ce problème, appliquez le correctif suivant à
<SDK install dir>\Bin\SetEnv.cmd
. Cela corrigera également les chemins manquants vers d'autres outils situés dans<SDK install dir>\Bin
et sous-dossiers. Bien sûr, vous pouvez installer le compilateur C à la place pour contourner ce bogue.la source