Konfiguruję obsługę .NET 4.0 na naszym serwerze CI. Zainstalowałem .NET 4.0 i narzędzia .NET z zestawu Windows 7.1 SDK.
W .NET 2.0 i 3.5 to po prostu działało. W przypadku .NET 4, kiedy uruchamiam „Wiersz polecenia Windows SDK 7.1” z menu Start, narzeka
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
Następnie, gdy próbuję uruchomić msbuild, otrzymuję:
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>
Nie mogę do końca uwierzyć, że zainstalowanie środowiska wykonawczego i SDK pozostawi system, który nie może uruchomić msbuild ... czy przegapiłem jakiś oczywisty krok lub zaciemniłem Windows Update, czy też czas się poddać i zacząć hakować ścieżkę systemową ?
%VCTools%
ustawiona zmienna środowiskowa? Powinien być ustawiony na ścieżkę. Czycl.exe
istnieje na tej ścieżce? Czy korzystasz z systemu Windows w wersji innej niż angielska? Słyszałem kilka raportów o tym problemie w zlokalizowanej instalacji systemu Windows.Odpowiedzi:
Aby włączyć
msbuild
w wierszu polecenia , wystarczy dodać ścieżkę do instalacji .NET 4 Framework na komputerze doPATH
zmiennej środowiskowej.Dostęp do zmiennych środowiskowych można uzyskać poprzez:
PATH
Dla porównania moja ścieżka była
C:\Windows\Microsoft.NET\Framework\v4.0.30319
Aktualizacja ścieżki z 21.03.18:
Od wersji MSBuild 12 (2013) / VS 2013 / .NET 4.5.1+ i nowszych MSBuild jest teraz instalowany jako część programu Visual Studio .
Dla porównania, po zainstalowaniu VS2015 na mojej maszynie moja ścieżka to
C:\Program Files (x86)\MSBuild\14.0\Bin
źródło
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
. Zobacz docs.microsoft.com/en-us/visualstudio/msbuild/…Od tej
Visual Studio 2013
poryMSbuild
jest częścią programu Visual Studio. Wcześniej MSBuild został zainstalowany jako część. NET Framework.MSBuild jest instalowany bezpośrednio w % ProgramFiles% . Tak więc ścieżka do programu MSBuild może się różnić w zależności od wersji programu Visual Studio.
Bo
Visual Studio 2015
ścieżkaMSBuild
jest"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
Bo
Visual Studio 15 Preview
ścieżkaMSBuild
jest"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"
Ponadto dodano niektóre nowe właściwości programu MSBuild, a niektóre zostały zmodyfikowane. Więcej informacji znajdziesz tutaj
Aktualizacja 1: VS 2017
Lokalizacja programu MSBuild została ponownie zmieniona wraz z wydaniem programu Visual Studio 2017 . Teraz katalog instalacyjny znajduje się w
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\
. Ponieważ mam wersję Enterprise, lokalizacja MSBuild dla mojego komputera to"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"
źródło
Użycie „Developer Command Prompt for Visual Studio 20XX” zamiast „cmd” spowoduje automatyczne ustawienie ścieżki dla msbuild bez konieczności dodawania jej do zmiennych środowiskowych.
źródło
Twój plik bat mógłby wyglądać następująco:
źródło
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*proj
mogłoby to zrobić, chociaż zwróć uwagę, że ścieżka dla nowszych wersji MSBuild (około 2013) jest inna.W przypadku programu Visual Studio 2019 (przynajmniej wersja zapoznawcza) jest teraz w:
Wyobrażam sobie, że proces będzie podobny w przypadku oficjalnej wersji 2019.
źródło
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
.Aby móc budować za pomocą składni C # 6, użyj tego w ścieżce:
źródło
SetEnv.cmd
Skrypt „Wiersz polecenia SDK” Skrót Uruchamia sprawdzacl.exe
się w różnych miejscach przed powołaniem wpisy, aby dodać doPATH
. Więc nie dodaje niczego, jeśli nie jest zainstalowany natywny kompilator C.Aby to naprawić, zastosuj następującą poprawkę do
<SDK install dir>\Bin\SetEnv.cmd
. Spowoduje to również naprawienie brakujących ścieżek do innych narzędzi znajdujących się w<SDK install dir>\Bin
podfolderach i. Oczywiście możesz zamiast tego zainstalować kompilator C, aby obejść ten błąd.źródło