Saya sedang menyiapkan dukungan .NET 4.0 di server CI kami. Saya telah menginstal .NET 4.0, dan alat .NET dari Windows 7.1 SDK.
Pada .NET 2.0 dan 3.5, itu baru saja berfungsi. Dengan .NET 4, ketika saya menjalankan "Windows SDK 7.1 Command Prompt" dari menu Start, ia mengeluh
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
Lalu ketika saya mencoba menjalankan msbuild, saya mendapatkan:
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>
Saya tidak percaya bahwa menginstal runtime dan SDK akan meninggalkan Anda dengan sistem yang tidak dapat menjalankan msbuild ... apakah saya melewatkan beberapa langkah yang jelas atau mengaburkan Pembaruan Windows, atau sekarang saatnya untuk menyerah dan mulai meretas jalur sistem ?
%VCTools%
variabel lingkungan disetel? Itu harus diatur ke jalan. Apakahcl.exe
ada di jalur itu? Juga, apakah Anda menggunakan Windows non-Inggris? Saya telah mendengar beberapa laporan tentang masalah ini pada instalasi Windows lokal.Jawaban:
Untuk mengaktifkan
msbuild
di Command Prompt , Anda cukup menambahkan path ke .NET 4 Framework install di mesin Anda kePATH
variabel lingkungan.Anda dapat mengakses variabel lingkungan dengan:
PATH
Sebagai referensi, jalan saya adalah
C:\Windows\Microsoft.NET\Framework\v4.0.30319
3/21/18 Path Update:
Pada MSBuild 12 (2013) / VS 2013 / .NET 4.5.1+ dan selanjutnya MSBuild sekarang diinstal sebagai bagian dari Visual Studio .
Sebagai referensi, dengan VS2015 diinstal mesin saya jalan saya
C:\Program Files (x86)\MSBuild\14.0\Bin
sumber
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
. Lihat docs.microsoft.com/en-us/visualstudio/msbuild/…Sejak saat itu
Visual Studio 2013
,MSbuild
hadir sebagai bagian dari Visual Studio. Sebelumnya, MSBuild diinstal sebagai bagian dari. NET Framework.MSBuild diinstal langsung di bawah % ProgramFiles% . Jadi, jalur untuk MSBuild mungkin berbeda tergantung pada versi Visual Studio.
Karena
Visual Studio 2015
, Path ofMSBuild
is"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
Karena
Visual Studio 15 Preview
, Path ofMSBuild
is"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"
Juga, Beberapa properti MSBuild baru telah ditambahkan dan beberapa telah dimodifikasi. Untuk informasi lebih lanjut, lihat di sini
Pembaruan 1: VS 2017
Lokasi untuk MSBuild telah berubah lagi dengan rilis Visual Studio 2017 . Sekarang direktori instalasi berada di bawah
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\
. Karena, saya memiliki edisi Enterprise, lokasi MSBuild untuk mesin saya adalah"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"
sumber
Menggunakan "Prompt Perintah Pengembang untuk Visual Studio 20XX" alih-alih "cmd" akan menetapkan jalur untuk msbuild secara otomatis tanpa harus menambahkannya ke variabel lingkungan Anda.
sumber
File bat Anda bisa seperti:
sumber
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*proj
mungkin melakukannya, meskipun perlu dicatat bahwa jalur untuk versi yang lebih baru dari MSBuild (sekitar 2013) berbeda.Untuk Visual Studio 2019 (Pratinjau, setidaknya) sekarang di:
Saya membayangkan prosesnya akan serupa untuk rilis resmi 2019.
sumber
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
.Agar dapat membangun dengan sintaks C # 6 gunakan ini di jalur:
sumber
The
SetEnv.cmd
Script bahwa "perintah SDK prompt" shortcut berjalan memeriksacl.exe
di berbagai tempat sebelum menyiapkan entri untuk menambahPATH
. Jadi gagal menambahkan apa pun jika kompiler C asli tidak diinstal.Untuk memperbaikinya, terapkan tambalan berikut ke
<SDK install dir>\Bin\SetEnv.cmd
. Ini juga akan memperbaiki jalur yang hilang ke alat lain yang berada di dalam<SDK install dir>\Bin
dan subfolder. Tentu saja, Anda dapat menginstal kompiler C sebagai gantinya untuk mengatasi bug ini.sumber