Saya membangun proyek melalui baris perintah dan tidak di dalam Visual Studio 2013. Catatan, saya telah memutakhirkan proyek saya dari Visual Studio 2012 hingga 2013. Proyek ini dibangun dengan baik di dalam IDE. Juga, saya benar-benar menghapus VS2012 terlebih dahulu, reboot, dan menginstal VS2013. Satu-satunya versi Visual Studio yang saya miliki adalah 2013 Ultimate.
ValidateProjects:
39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.
Inilah dua baris yang dipertanyakan:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Baris kedua asli adalah v10.0, tapi saya secara manual mengubahnya menjadi v12.0.
$ (VSToolsPath) memanjang dari apa yang saya lihat ke folder v11.0 (VS2012), yang jelas sudah tidak ada lagi. Path seharusnya ke v12.0.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\
Saya mencoba menentukan VSToolsPath di tabel variabel lingkungan sistem saya, tetapi utilitas build eksternal masih menggunakan v11.0. Saya mencoba mencari melalui registri dan yang muncul tanpa apa-apa.
Sayangnya, saya tidak melihat cara mudah untuk mendapatkan baris perintah yang tepat digunakan. Saya menggunakan alat membangun.
Pikiran?
sumber
Jawaban:
Saya memiliki masalah yang sama dan menemukan solusi yang lebih mudah
Ini karena Vs2012 menambahkan berikut ini ke file csproj:
Anda dapat dengan aman menghapus bagian itu dan solusi Anda akan dibangun.
Jika tidak, jika Anda perlu menggunakan webdeploy atau Anda menggunakan build server, solusi di atas tidak akan berfungsi tetapi Anda bisa menentukan
VisualStudioVersion
properti di skrip build Anda:atau edit definisi bangunan Anda:
sumber
Saya punya ini juga dan Anda dapat memperbaikinya dengan mengatur versi alat di definisi build Anda.
Ini sangat mudah untuk dilakukan. Buka definisi pembuatan Anda dan buka halaman " Proses ". Kemudian di bawah grup " 3. Advanced " Anda memiliki properti yang disebut " MSBuild Arguments ". Tempatkan parameter di sana dengan sintaks berikut
Jika Anda memiliki lebih banyak parameter, pisahkan dengan spasi dan bukan koma.
sumber
Ini terkait erat tetapi mungkin atau mungkin tidak memperbaiki masalah khusus OP. Dalam kasus saya, saya mencoba untuk mengotomatiskan penyebaran situs Azure menggunakan VS2013. Membangun dan menggunakan via karya VS, menggunakan MSBuild menunjukkan kesalahan yang sama di sekitar "target". Ternyata MSBuild berbeda di bawah VS2013, dan sekarang menjadi bagian dari VS dan bukan .Net Framework (lihat http://timrayburn.net/blog/visual-studio-2013-and-msbuild/ ). Pada dasarnya, gunakan versi MSBuild yang benar:
LAMA, VS2012
BARU, VS2013
Lebih baru, VS2015
Masih lebih baru, VS2017 (tidak sepenuhnya menguji tetapi menemukan - mereka telah memindahkan banyak hal)
sumber
Saya baru saja menerima tanggapan dari Kinook, yang memberi saya tautan :
Pada dasarnya, saya perlu menghubungi yang berikut sebelum melakukan bulding. Saya kira Visual Studio 2013 tidak secara otomatis mendaftarkan lingkungan terlebih dahulu, tetapi 2012 melakukannya, atau saya lakukan dan lupa.
Semoga posting ini membantu orang lain.
sumber
node-gyp
tersebutCpp default.props
tidak ditemukan! +1solusi giammin sebagian salah. Anda TIDAK HARUS menghapus seluruh PropertyGroup dari solusi Anda. Jika Anda melakukannya, fitur "DeployTarget = Paket" MSBuild akan berhenti berfungsi. Fitur ini bergantung pada "VSToolsPath" yang sedang diatur.
sumber
Saya memiliki masalah ini untuk target FSharp kami (FSharpTargetPath kosong).
Banyak jalur dibangun dengan mengacu pada versi VS.
Karena berbagai alasan, build kami berjalan dengan hak istimewa sistem, dan variabel lingkungan "VisualStudioVersion" hanya disetel (oleh pemasang VS 2013) pada tingkat "pengguna" - yang cukup adil.
Pastikan bahwa "
VisualStudioVersion
" variabel lingkungan diatur ke "12.0
" pada level (Sistem atau Pengguna) yang Anda jalankan.sumber
System
dari Control Panel, lalu pilihAdvanced system settings
, dan akhirnya klikEnvironment Variables
Menjalankan ini di commandline akan memperbaiki masalah juga. SETX VisualStudioVersion "12.0"
sumber
Jika Anda memigrasikan Visual Studio 2012 ke 2013, maka buka file proyek * .csprorj dengan edior.
dan periksa elemen ToolsVersion tag 'Project'.
Itu nilai 4,0
Anda membuatnya menjadi 12,0
Dari
Untuk
Atau Jika Anda membangun dengan msbuild maka tentukan saja properti VisualStudioVersion
sumber
Saya menggunakan utilitas build eksternal. Pikirkan sesuatu seperti Semut, jika saya memahami produk dengan benar, hanya versi komersial. Saya harus menghubungi pabrikan untuk jawabannya.
Ternyata, ada makro global dalam proyek ini, DEVSTUDIO_NET_DIR. Saya harus mengubah jalur ke. Net di sana. Mereka mencantumkan berbagai versi studio visual sebagai "Aksi", yang membuat saya putus, tetapi semua jalan mengarah ke satu variabel global di belakang layar. Saya akan mencantumkan itu sebagai cacat terhadap produk, jika saya memiliki cara saya, kecuali saya kehilangan sesuatu dalam pemahaman saya. Memperbaiki jalur di sana memperbaiki masalah build.
sumber
Saya telah menginstal Visual Studio 2013. Ini bekerja untuk saya:
Jadi saya telah mengubah kondisi dari
==
ke!=
dan nilai dari10.0
ke12.0
.sumber
Saya memiliki masalah serupa. Semua solusi yang diusulkan hanya bekerja untuk masalah ini tetapi tidak menyelesaikan sumber kesalahan. Solusi @giammin tidak boleh diterapkan jika Anda menggunakan tfs build server karena itu baru saja mem-publish fungsionalitas. solusi @ cat5dev - memecahkan masalah tetapi tidak memecahkan sumbernya.
Saya hampir yakin bahwa Anda menggunakan templat proses build untuk VS2012 seperti
ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml
templat templat ini dibuat untuk VS2012 dan $ (VisualStudioVersion) disetel ke 11.0Anda harus menggunakan templat proses bangun untuk VS2013
ReleaseTfvcTemplate.12.xaml or TfvcTemplate.12.xaml
yang memiliki $ (VisualStudioVersion) diatur ke 12.0Ini berfungsi tanpa ada perubahan pada file proyek.
sumber
Saya juga mengalami kesalahan yang sama .. Saya melakukan ini untuk memperbaikinya
mengubah
dan sudah selesai.
sumber
Dalam kasus saya, saya hanya berkomentar di bawah baris dengan membuka file .csproj dan melakukan trik
.
<!-- <Import Project="..\PRPJECTNAME.targets" /> -->
Masalah saya mungkin berbeda tetapi saya diseret ke sini, tetapi ini dapat membantu seseorang.
Saya memilih satu proyek web dari solusi saya dan mencoba membukanya sebagai proyek yang berdiri sendiri yang membuat masalah, setelah itu saya bisa menyelesaikan masalah.
sumber
Gunakan versi MSBuild yang benar. Setel Variabel Lingkungan ke:
Ini juga akan bekerja untuk proyek VS 2019
Sebelumnya kami mengaturnya untuk
C:\Windows\Microsoft.NET\Framework\v4.0.30319
sumber
Dalam lingkungan dev kasus saya adalah VS2013 dan saya menggunakan TFS 2010. Build ditargetkan untuk .NET 4.5.1. Saya mengatur pembuatan otomatis untuk CI. setiap kali saya mencoba workarounds yang disebutkan di atas - seperti menghapus grup properti sepenuhnya atau mengganti beberapa baris etc.my build dulu terjadi di TFS tetapi saya publikasikan ke biru dulu gagal dengan 'MSDeploy' atau kadang-kadang beberapa kesalahan yang berbeda. Saya tidak dapat mencapai keduanya secara bersamaan.
Jadi akhirnya saya harus melewati argumen MSBuild untuk menyelesaikan masalah ini.
Edit definisi build Goto> Proses> 3. Tingkat Lanjut> Argumen MSBuild (disetel ke) /p:VisualStudioVersion=12.0
Ini berhasil untuk saya.
sumber
Anda harus menyalin folder Aplikasi Web dari C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ to C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \
sumber
Anda akan menemukan
dalam file csproj yang muncul kesalahan ini. Hapus saja ini dari csproj dan kemudian buat.
sumber
Hanya satu hal yang perlu dilakukan untuk menyelesaikan masalah: upgrade TeamCity ke versi 8.1.x atau lebih tinggi karena dukungan untuk Visual Studio 2012/2013 dan MSBuild Tools 2013 hanya diperkenalkan di TeamCity 8.1. Setelah Anda memutakhirkan pengaturan TeamCity Anda memodifikasi MSBuild Tools Version dalam langkah membangun Anda sesuai dan masalah akan hilang. Untuk info lebih lanjut baca di sini: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html
sumber
Saya - tidak ada yang membantu dalam mengubah nilai v11.0 dari variabel VisualStudioVersion ke v10.0. Mengubah variabel dalam file .csproj tidak. Mengaturnya melalui perintah promt tidak. Dll ...
Akhirnya menyalin folder lokal saya dari versi tertentu (v11.0) ke server build saya.
sumber
Saya sudah mencoba semua solusi di atas dan masih belum berhasil. Saya telah mendengar orang memasang studio visual pada server build mereka untuk memperbaikinya, tetapi saya hanya memiliki ruang kosong 5gb jadi saya hanya menyalin C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio ke server build saya dan menyebutnya sehari . Mulai bekerja setelah itu, menggunakan team city 9.x dan visual studio 2013.
sumber
Berdasarkan TFS 2015 Build Server
Jika Anda mengatasi kesalahan ini
... Error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Buka
.csproj
file proyek yang disebutkan dalam pesan kesalahan dan komentar bagian di bawah ini<!-- <PropertyGroup> --> <!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> --> <!-- <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> --> <!-- </PropertyGroup> -->
sumber
Saya mendapatkan kesalahan ini ketika saya menginstal beberapa komponen VS. Sayangnya tidak ada jawaban yang tidak membantu saya. Saya menggunakan TFS untuk pengembangan perintah dan saya tidak memiliki izin untuk mengedit definisi build. Saya memecahkan masalah ini dengan menghapus variabel lingkungan yang dipanggil
VS110COMNTOOLS
danVS120COMNTOOLS
. Saya pikir itu diinstal dengan komponen VS saya.sumber
Saya menemukan saya kehilangan folder WebApplications pada PC lokal saya, tidak menginstal dengan Visual Studio 2017 seperti ketika saya menggunakan 2012.
sumber
Dalam kasus saya, saya menggunakan versi yang salah dari
MSBuild.exe
.Versi yang perlu Anda gunakan tergantung pada versi Visual Studio yang Anda gunakan untuk membuat proyek Anda. Dalam kasus saya, saya membutuhkan 14.0 (menggunakan Visual Studio 2015).
Ini ditemukan di:
Anda dapat melihat di bawah:
Untuk menemukan versi lain.
sumber