Ich richte die .NET 4.0-Unterstützung auf unserem CI-Server ein. Ich habe .NET 4.0 und die .NET-Tools aus dem Windows 7.1 SDK installiert.
Unter .NET 2.0 und 3.5 hat das einfach funktioniert. Wenn ich unter .NET 4 die "Windows SDK 7.1-Eingabeaufforderung" über das Startmenü ausführe, wird dies beanstandet
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
Wenn ich dann versuche, msbuild auszuführen, erhalte ich:
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>
Ich kann nicht recht glauben, dass Sie durch die Installation der Laufzeit und des SDK ein System erhalten, auf dem msbuild nicht ausgeführt werden kann. Habe ich einen offensichtlichen Schritt verpasst oder Windows Update verdeckt, oder ist es an der Zeit, den Systempfad aufzugeben und zu hacken ?
%VCTools%
Umgebungsvariable eingestellt? Es sollte auf einen Pfad gesetzt werden. Existiertcl.exe
auf diesem Weg? Sind Sie auch auf einem nicht englischen Windows? Ich habe einige Berichte über dieses Problem bei der lokalisierten Windows-Installation gehört.Antworten:
So aktivieren Sie
msbuild
in der Eingabeaufforderung , müssen Sie einfach den Pfad zu dem .NET 4 Framework - hinzuzufügen installiert auf Ihrem Computer diePATH
von Umgebungsvariablen.Sie können auf die Umgebungsvariablen zugreifen, indem Sie:
PATH
Als Referenz war mein Weg
C:\Windows\Microsoft.NET\Framework\v4.0.30319
21.03.18 Pfadaktualisierung:
Ab MSBuild 12 (2013) / VS 2013 / .NET 4.5.1+ und höher ist MSBuild jetzt als Teil von Visual Studio installiert .
Als Referenz: Wenn VS2015 auf meinem Computer installiert ist, lautet mein Pfad
C:\Program Files (x86)\MSBuild\14.0\Bin
quelle
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
. Siehe docs.microsoft.com/en-us/visualstudio/msbuild/…Ab
Visual Studio 2013
sofortMSbuild
als Teil von Visual Studio. Zuvor wurde MSBuild als Teil von installiert. NET Framework.MSBuild wird direkt unter % ProgramFiles% installiert . Daher kann der Pfad für MSBuild je nach Version von Visual Studio unterschiedlich sein.
Denn
Visual Studio 2015
Pfad vonMSBuild
ist"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
Denn
Visual Studio 15 Preview
Pfad vonMSBuild
ist"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"
Außerdem wurden einige neue MSBuild-Eigenschaften hinzugefügt und einige geändert. Weitere Informationen finden Sie hier
Update 1: VS 2017
Der Speicherort für MSBuild hat sich mit der Veröffentlichung von Visual Studio 2017 erneut geändert . Jetzt befindet sich das Installationsverzeichnis unter dem
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\
. Da ich eine Enterprise Edition habe, ist der MSBuild-Speicherort für meinen Computer"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"
quelle
Wenn Sie die "Entwickler-Eingabeaufforderung für Visual Studio 20XX" anstelle von "cmd" verwenden, wird der Pfad für msbuild automatisch festgelegt, ohne dass Sie ihn Ihren Umgebungsvariablen hinzufügen müssen.
quelle
Ihre Fledermausdatei könnte wie folgt aussehen:
quelle
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*proj
könnte es tun, obwohl zu beachten ist, dass der Pfad für neuere Versionen von MSBuild (circa 2013) anders ist.Für Visual Studio 2019 (zumindest Vorschau) ist es jetzt in:
Ich kann mir vorstellen, dass der Prozess für die offizielle Veröffentlichung 2019 ähnlich sein wird.
quelle
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
.Verwenden Sie diesen Pfad, um mit der C # 6-Syntax erstellen zu können:
quelle
Das
SetEnv.cmd
Skript, das von der Verknüpfung "SDK-Eingabeaufforderung" ausgeführt wird, wirdcl.exe
an verschiedenen Stellen überprüft, bevor Einträge zum Hinzufügen eingerichtet werdenPATH
. Es kann also nichts hinzugefügt werden, wenn kein nativer C-Compiler installiert ist.Wenden Sie den folgenden Patch an, um dies zu beheben
<SDK install dir>\Bin\SetEnv.cmd
. Dadurch werden auch fehlende Pfade zu anderen Tools in<SDK install dir>\Bin
und Unterordnern behoben. Natürlich können Sie stattdessen den C-Compiler installieren, um diesen Fehler zu umgehen.quelle