Ketika saya menjalankan msbuild untuk membangun proyek vc2010 saya mendapatkan kesalahan berikut:
error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists
on disk.
- msbuild terletak c: \ Program File (x86) \ MSBuild
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCT TargetPath diatur ke $ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \
- ketika menjalankan msbuild / verbosity: diag sebagai sistem yang baik menunjukkan MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath ditetapkan sebagai Lingkungan pada awal pembuatan
- pengaturan MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath ditetapkan sebagai variabel lingkungan di shell tidak menyebabkan mereka untuk ditampilkan sebagai Lingkungan pada awal pembuatan
Perbaikan Telah Dicoba
- Menghapus .net 4.5, memperbaiki .net 4.0
- Tetapkan MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath di variabel sistem.
Tampaknya MSBuildExtensionsPath32 tidak disetel dengan benar dan pengaturan MSBuildExtensionsPath tidak membantu
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
Beri tahu saya jika Anda tahu apa yang memblokir pengaturan yang tepat dari variabel ini.
Jawaban:
Saya mendapat masalah ini saat menerbitkan aplikasi cocos2d-x menggunakan alat baris perintah mereka, yang memanggil MSBuild. Saya menggunakan Win 7 64-bit, VS2013 express, cocos2d-x versi 3.3, .NET Framework 4.5 diinstal.
Saya memperbaiki masalah dengan mengatur yang berikut ini sebelum menjalankan perintah cocos.py publish:
sumber
[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140", "Machine")
Bagi mereka yang tidak mengikuti perintah MS proscribed (lihat jawaban Xv ), Anda masih bisa memperbaiki masalah.
MSBuild menggunakan
VCTargetsPath
untuk menemukan properti cpp default tetapi tidak dapat karena registri tidak memiliki Nilai String.Periksa Nilai String
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
kunci. Nilainya harus = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Memperbaiki
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Catatan:
HKLM
singkatanHKEY_LOCAL_MACHINE
.sumber
set VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0
VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120
HKEY_LOCAL_MACHINE
Anda pasti harus memilikinya di regeditset VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
Saya mengalami masalah yang sama baru-baru ini dan setelah menginstal paket yang berbeda dalam urutan yang berbeda, itu menjadi sangat berantakan. Kemudian saya menemukan repo ini - https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-tools
Ini menginstal alat Python & VS Build yang diperlukan untuk mengkompilasi sebagian besar modul node. Itu berhasil!
sumber
--production
opsi.npm install --global --production windows-build-tools
Sesuai petunjuk pemasangan node-gyp: github.com/nodejs/node-gypUntuk Visual Studio 2017 dan 2019 di Windows 10
Banyak jawaban di sini berlaku untuk versi Visual Studio yang lebih lama. Apa yang berhasil bagi saya, jika menggunakan versi Komunitas Visual Studio 2017, adalah menetapkan variabel lingkungan yang disebut
VCTargetsPath
dan memberinya nilaiJika menggunakan versi Komunitas Visual Studio 2019,
Jawaban lain di sini mengatur variabel ini ke
c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
tetapi saya perhatikan di instalasi studio visual saya, tidak ada folder bernama Microsoft.Cpp di folder MSBuild saya. Jadi ingatlah ini serta fakta bahwa jalur di atas adalah untuk Visual Studio 2017 versi Komunitas.Juga, pastikan bahwa lintasan MSBuild di variabel lingkungan Anda mengarah ke versi MSBuild yang benar jika Anda menggunakan versi komunitas Visual Studio 2017,
Jika Anda menggunakan versi komunitas Visual Studio 2019,
sumber
Microsoft Visual Studio\2019\BuildTools
atau variasi serupa - dan saya kira alih-alih BuildTools dan Komunitas Anda juga bisa memiliki Professional dan Enterprise.vswhere.exe -products * -property installationPath
akan mencari semua kombinasi, dan mengembalikan lokasi semua produk yang dipasang.'vswhere.exe' is not recognized as an internal or external command, operable program or batch file.
Menginstal Pembaruan Kompiler Microsoft Visual C ++ 2010 Paket Layanan 1 untuk Windows SDK 7.1 memperbaiki
MSB4019
kesalahan yang saya buat pada Windows7 x64.Pembacaan pembaruan itu menyatakan bahwa urutan yang disarankan adalah
sumber
Pada sistem 64-bit, default MSBuild ke properti berikut (di mana C: adalah SystemDrive):
Jika tidak, itu berarti Anda memiliki beberapa target penggantian pihak ketiga kustom yang diinstal, atau penginstalan MSBuild Anda rusak.
Hal untuk dicoba:
MSBuildExtensionsPath
secara manual seperti di atas (perhatikanx86
bagian pada mesin 64-bit)sumber
Saya mengalami masalah ini di Visual Studio 2015 edisi. Ketika saya menggunakan cmake untuk menghasilkan proyek kesalahan ini muncul.
kesalahan MSB4019: Proyek yang diimpor "D: \ Microsoft.Cpp.Default.props" tidak ditemukan
Saya memperbaikinya dengan menambahkan String
dengan nilai
di jalur registri
sumber
MSBuild dalam alat build independen yang sering digabungkan dengan alat lain. Ini mungkin telah diinstal di komputer Anda dengan .NET (versi yang lebih lama), Visual Studio (versi yang lebih baru), atau bahkan Team Foundation Build.
MSBuild membutuhkan file konfigurasi, kompiler, dll (ToolSet) yang sesuai dengan versi Visual Studio atau TFS yang akan menggunakannya, serta versi .NET yang akan digunakan untuk kompilasi kode sumber.
Bergantung pada bagaimana MSBuild diinstal, file konfigurasi mungkin berada di satu atau lebih jalur ini.
Seperti yang dijelaskan dalam jawaban lain, item registri dan / atau titik variabel lingkungan harus ke jalur ToolSet.
Kadang-kadang, operasi seperti menginstal alat akan membuat registri dan / atau variabel lingkungan tidak disetel dengan benar. Jawaban lainnya adalah semua variasi untuk memperbaikinya.
Satu-satunya hal yang harus saya tambahkan adalah variabel lingkungan tidak berfungsi untuk saya ketika saya meninggalkan jejak \
sumber
Entri registri untuk kunci MSBuild berfungsi dengan baik bagi saya. Penting untuk diingat bahwa ini harus dilakukan untuk cabang 64-bit atau 32-bit tergantung pada versi MSBuild yang Anda jalankan. Saya tidak akan merekomendasikan untuk menggunakan variabel lingkungan karena dapat menyebabkan masalah di berbagai versi MSBuild.
File registri ini memperbaiki kedua kasus tersebut:
sumber
Tidak ada yang berhasil untuk saya kecuali, mengatur jalur sebagai:
sumber
EDIT: Ini berlaku untuk versi Visual Studio / MSBuild (khususnya MSVC2015?). Dengan versi yang lebih modern, MSBuild disertakan dalam Visual Studio Build Tools 2019, dan kompiler berada di tempat berbeda dan terdeteksi dengan cara berbeda.
Hal ini disebabkan oleh ketidakcocokan kumpulan alat MSBuild dan pengaturan registri yang terinstal. Ini dapat terjadi jika Anda melakukan satu atau beberapa hal berikut:
Satu-satunya solusi yang aman dan andal adalah menginstal ulang OS Anda. Jika proyek Anda memerlukan beberapa versi Visual Studio untuk dibuat, instal versi terlama terlebih dahulu . Kemudian perbaiki kode Anda sehingga Anda dapat menggunakan satu alat untuk membuatnya, atau Anda atau kolega Anda akan segera berada dalam kekacauan yang sama lagi.
Jika ini bukan pilihan untuk Anda, baca dulu https://stackoverflow.com/a/41786593/2279059 untuk pemahaman yang lebih baik tentang masalah dan apa yang sebenarnya dilakukan oleh berbagai "solusi". Kemudian, bergantung pada versi dan penyiapan Visual Studio Anda, salah satu jawaban atau variasinya pada akhirnya dapat membantu.
Beberapa petunjuk lagi:
sumber
Menginstal Pembaruan Kompiler Microsoft Visual C ++ 2010 Paket Layanan 1 untuk Windows SDK 7.1 berhasil untuk saya. Namun, saya mengalami masalah dengan pembaruan karena saya sudah menginstal VS 2010 dan VS 2010 SP1. Seperti yang disebutkan oleh Xv di atas, file readme.htm berisi solusi untuk masalah penginstalan yang paling umum di bagian "Masalah yang Diketahui". Saya akan mengikuti instruksi di readme.htm dan reboot mesin Anda setelah setiap upaya pemecahan masalah karena beberapa instalasi menulis ke registri Anda.
sumber
Dalam kasus saya, saya telah menambahkan variabel Lingkungan
VCTargetPath
dengan jalur('\' di bagian akhir sangat penting, karena file solusi proyek memiliki referensi ke file "target cpp Microsoft".
Juga, mulai dari Visual Studio 2017 MSBUILD hadir dalam Visual Studio - jadi,
PATH variable
perlu diperbaruiMemperbarui
VCTargetPath
danPATH
variabel MSBUILD dan membangun memperbaiki kesalahan.sumber
Saya menemukan kesalahan ini dengan menulis skrip Build yang akan menempatkan MSBuild di% PATH% setelah secara rekursif menggali melalui folder C: \ Windows \ Microsoft.NET untuk file MSBuild.exe yang ditemukan. Hit terakhir yang ditemukan adalah direktori yang diletakkan di jalur. Karena
dir
perintah akan masuk keFramework64
folder setelahFramework
saya mendapatkan salah satu MSBuild 64bit di jalur saya. Saya mencoba untuk membangun solusi Visual Studio 2010 dan akhirnya mengubah string pencarian saya dariC:\Windows\Microsoft.NET
menjadiC:\Windows\Microsoft.NET\Framework
sehingga saya akan berakhir dengan MSBuild.exe 32bit. Sekarang file solusi saya dibangun.sumber
Saya baru saja menambahkan
VCTargetsPath={c:\...}
sebagai variabel lingkungan ke pekerjaan Hudson saya.sumber
Sebagai catatan, file
Microsoft.Cpp.Default.props
dapat memodifikasi env varVCTargetsPath
dan membuat penggunaan var tersebut menjadi tidak benar. Saya memiliki masalah itu dan menyelesaikannya dengan menetapkanVCTargetsPath10
danVCTargetsPath11
dengan nilai yang sama dariVCTargetsPath
.Ini harus disesuaikan dengan versi VS yang Anda gunakan.
sumber
Saya melihat ini di lingkungan VS2017. Skrip build saya memanggil
VsDevCmd.bat
terlebih dahulu, dan untuk mengatasi masalah ini, saya menetapkanVCTargetsPath
variabel lingkungan setelahVsDevCmd
dan sebelum memanggil MSBuild:sumber
Menambah jawaban Chris Gong tentang VS2017 / 2019 di atas (Saya belum memiliki izin komentar).
Jika VS 2019 Build Tools diinstal daripada Visual Studio lengkap maka jalur file sedikit berbeda. VCT TargetPath kemudian harus
Perhatikan juga terminating backslash - diperlukan setidaknya dalam kasus saya (TFS2017, VS2019 Build tools). Perubahan terkait ke entri PATH juga.
sumber
Saya menghadapi masalah yang sama dengan MSBuild untuk VS 17
Saya menyelesaikan ini dengan menerapkan langkah-langkah berikut:
Dalam kasus saya,
Microsoft.Cpp.Default.props
file tersebut terletak diC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
jadi saya membuatVCTragetsPath
string di registri di bawahHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
dengan nilaiC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
Saya juga membuat Jenkins saya dijalankan sebagai pengguna admin
Ini memecahkan masalah saya.
sumber
Alih-alih menyetel jalur tetap, coba ini di baris perintah pasca-build Anda terlebih dahulu:
Variabel '$ (VCT TargetPath)' tampaknya merupakan makro visual-studio terkait c ++ yang tidak ditampilkan di c # -sdk-projects sebagai makro, tetapi masih tersedia di sana.
sumber