Mencoba membangun proyek saya di server build memberi saya kesalahan berikut:
Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.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.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.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.
Saya memecahkan masalah ini beberapa bulan yang lalu, dengan menginstal Visual Studio 2010 pada Build Server. Tapi sekarang saya sedang menyiapkan server baru dari awal, dan saya ingin tahu apakah ada solusi yang lebih baik untuk menyelesaikan masalah ini.
<Import Project="..\Packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
jalur dengan$(VSToolsPath)
sebagai:<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" />
Jawaban:
Untuk menjawab judul pertanyaan (tetapi bukan pertanyaan tentang hasil yang Anda dapatkan):
Menyalin folder berikut dari mesin dev Anda ke server build Anda memperbaiki ini jika itu hanya aplikasi web
Hapus x86 sesuai dengan bagaimana bangunan Anda rusak. Jika Anda memiliki jenis proyek lain, Anda mungkin perlu menyalin seluruh folder msbuild.
sumber
Membangun dan menerbitkan WAP tidak didukung jika VS tidak diinstal. Dengan itu, jika Anda benar-benar tidak ingin menginstal VS maka Anda harus menyalin semua file di bawah
%ProgramFiles32%\MSBuild\Microsoft\
.Anda juga perlu menginstal Web Deploy Tool . Saya pikir hanya itu.
sumber
UPD: per VS2017, ada beban kerja di Alat Bangun yang menghilangkan masalah ini sepenuhnya. Lihat jawaban @SOReader .
Jika Anda memilih untuk tidak mengubah apa pun di build server, dan Anda masih ingin proyek membangun langsung dari kontrol sumber, mungkin ide yang baik untuk meletakkan biner yang diperlukan di bawah kontrol sumber. Anda harus memodifikasi bagian impor dalam file proyek Anda agar terlihat seperti ini:
Baris pertama adalah impor aktual dari lokasi baru yang relatif terhadap direktori solusi. Yang kedua adalah versi dimatikan (
Condition="false"
) dari baris asli yang memungkinkan Visual Studio untuk tetap menganggap proyek Anda sebagai Proyek Aplikasi Web yang valid (itulah trik yang dilakukan VS 2010 SP1 sendiri).Jangan lupa menyalin folder
C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplications
ke diBuildTargets
bawah kendali sumber Anda.sumber
Saat ini, pada tahun 2017, Anda dapat menginstal redist WebApplication dengan MSBuildTools. Buka saja halaman ini yang akan mengunduh MSBuild 2017 Tools dan saat instalasi klik
Web development build tools
untuk memasang target ini juga:Ini akan menyebabkan menginstal pustaka yang hilang
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
secara defaultsumber
choco install visualstudio2017-workload-webbuildtools
.Microsoft.VisualStudio.Workload.WebBuildTools
, dapat diinstal melalui baris perintah dengan meneleponvs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools
. Tambahkan--passive
tidak perlu intervensi pengguna.Anda juga dapat menggunakan paket NuGet MSBuild.Microsoft.VisualStudio.Web.targets , mereferensikannya dalam proyek Visual Studio Anda, kemudian mengubah referensi Anda seperti yang disarankan Andriy K.
sumber
Berdasarkan posting ini di sini Anda cukup mengunduh Paket Redistributable Microsoft Visual Studio 2010 Shell (Terintegrasi) dan target dipasang.
Ini menghindari kebutuhan untuk menginstal Visual Studio pada server build.
Saya baru saja mencoba ini sekarang, dan dapat memverifikasi bahwa itu berfungsi:
Sebelum:
Setelah menginstal:
[Dibangun dengan benar]
Ini adalah solusi yang jauh lebih baik daripada menginstal Visual Studio pada server build, jelas.
sumber
Windows SDK terbaru, seperti yang disebutkan di atas, di samping "Paket Redistribusi Microsoft Visual Studio 2010 Shell (Terintegrasi)" untuk Microsoft.WebApplication.targets dan "Microsoft Visual Studio System System 2008 Database Edition GDR R2" untuk Microsoft.Data.Schema .SqlTasks.targets harus mengurangi kebutuhan untuk menginstal Visual Studio 2010. Namun, menginstal VS 2010 mungkin sebenarnya kurang keseluruhan untuk diunduh dan lebih sedikit kerja pada akhirnya.
sumber
Tambahkan ketergantungan melalui NuGet & tetapkan Parameter Bangun
Sasaran: tidak diperlukan perubahan / pemasangan untuk agen bangunan
Saya telah mengambil pendekatan hybrid untuk pendekatan NuGet oleh Lloyd di sini , yang didasarkan dari solusi dependensi biner yang dilakukan oleh Andrik.
Alasan mengapa saya ingin dapat menambahkan agen build baru tanpa harus melakukan pra-konfigurasi dengan item seperti ini.
[solution]\packages\MSBuild.Microsoft.VisualStudio.Web.targets.nn.n.n.n\tools\VSToolsPath\
Di Versi 7, saya melakukan hal berikut. Ini mungkin tidak perlu, dan berdasarkan komentar sudah pasti tidak diperlukan sekarang. Silakan lihat komentar di bawah ini.
env.VSToolsPath
dan atur ke folder VSToolsPath; Saya menggunakan..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath
sumber
<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
Saat membangun di server build / CI, matikan impor
Microsoft.WebApplication.targets
sama sekali dengan menentukan/p:VSToolsPath=''
. Ini pada dasarnya akan membuat kondisi baris berikut salah:Inilah yang dilakukan di TeamCity:
sumber
Jika Anda memigrasikan Visual Studio 2012 ke 2013, maka buka file proyek * .csproj dengan edior.
dan periksa elemen ToolsVersion tag 'Project'.
Ubah nilainya dari 4.0 ke 12.0
Dari
Untuk
Atau Jika Anda membangun dengan msbuild maka tentukan saja properti VisualStudioVersion
Sumber Solusi
sumber
msbuild /p:Platform=x86 /p:VisualStudioVersion=12.0
Sepertinya versi baru dari msbuild tidak disertakan bersama Microsoft.WebApplication.targets. Untuk memperbaikinya Anda perlu memperbarui file csproj Anda seperti itu:
1) Edit csproj aplikasi web (klik kanan). Temukan bagian di csproj menuju bagian bawah tentang alat membangun. Seharusnya terlihat seperti itu.
2) Anda perlu menambahkan satu baris VSToolsPath di bawah tag VisualStudioVersion sehingga terlihat seperti itu
Tautan referensi: https://alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/
sumber
Ini yang kamu butuhkan. Hanya 103MB. Jangan pasang semuanya
sumber
Saya menemukan ini di MS connect :
Jadi, ini adalah satu-satunya pilihan yang saya miliki untuk saat ini.
sumber
Solusi saya adalah campuran dari beberapa jawaban di sini.
Saya memeriksa server build, dan Windows7 / NET4.0 SDK sudah diinstal, jadi saya menemukan path:
Namun, pada baris ini:
$ (MSBuildExtensionsPath) berkembang menjadi C: \ Program Files \ MSBuild yang tidak memiliki path.
Karena itu yang saya lakukan adalah membuat symlink, menggunakan perintah ini:
Dengan cara ini $ (MSBuildExtensionsPath) meluas ke jalur yang valid, dan tidak ada perubahan yang diperlukan dalam aplikasi itu sendiri, hanya di server build (mungkin orang dapat membuat symlink setiap build, untuk memastikan langkah ini tidak hilang dan "didokumentasikan" ").
sumber
Aku tetap ini dengan menambahkan
/p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"
ke
Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments
sumber
Saya mencoba banyak solusi, tetapi pada akhirnya jawaban ini berhasil untuk saya: https://stackoverflow.com/a/19826448/431522
Ini pada dasarnya mencakup memanggil MSBuild dari direktori MSBuild, bukan direktori Visual Studio.
Saya juga menambahkan direktori MSBuild ke jalur saya, untuk membuat skrip lebih mudah dikodekan.
sumber
Siapa pun yang datang ke sini untuk Visual Studio 2017. Saya memiliki masalah yang sama dan tidak dapat mengkompilasi proyek setelah pembaruan ke 15.6.1. Saya harus menginstal alat MSBulild tetapi masih ada kesalahan.
Saya dapat memperbaiki masalah dengan menyalin
v14.0
folder dariC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
ke folder yang sama denganv15.0
dan yang menyelesaikan semua kesalahan. Jadi sekarang struktur folder saya terlihat seperti di bawah ini, di mana kedua folder berisi konten yang sama.sumber
Jika Anda menggunakan MSBuild, seperti dalam kasus server build, yang berhasil bagi saya adalah:
Ubah yang berikut ini:
untuk:
Perintah Msbuild saya adalah:
*"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" solution.sln /p:Configuration=Debug /p:Platform="Any CPU"*
Semoga ini bisa membantu seseorang.
sumber
Jika Anda mencoba untuk menyebarkan proyek menggunakan VSTS, maka masalah mungkin terhubung dengan memeriksa opsi "Hosted Windows Container" bukannya "Hosted VS2017" (atau 18, dll.):
sumber
C:> msbuild "C: \\ DotnetCi.sln" / p: Konfigurasi = Rilis / p: UseWPP_CopyWebApplication = true / p: PipelineDependsOnBuild = false
sumber
Saya mengalami masalah ini membangun proyek SQL Server pada pipa CI / CD. Bahkan, saya juga memilikinya secara lokal, dan saya tidak berhasil menyelesaikannya.
Apa yang berhasil bagi saya adalah menggunakan MSBuild SDK , yang mampu menghasilkan paket Aplikasi Tier Data SQL Server (
.dacpac
) dari sekumpulan skrip SQL, yang menyiratkan membuat proyek baru. Tapi saya ingin menyimpan proyek SQL Server, sehingga saya bisa menautkannya ke database langsung melalui SQL Server Object Explorer pada Visual Studio. Saya mengambil langkah-langkah berikut untuk menjalankan dan menjalankan ini:.sql
skrip database.Atur konten
.csproj
sebagai berikut:Saya telah memilih Sql140 sebagai versi SQL Server karena saya menggunakan SQL Server 2019. Periksa jawaban ini untuk mengetahui pemetaan ke versi yang Anda gunakan.
Abaikan proyek SQL Server on build, sehingga berhenti merusak secara lokal (itu membangun di Visual Studio, tetapi gagal pada VS Code).
Sekarang kita hanya perlu memastikan
.sql
file berada di dalam proyek SDK ketika dibangun. Saya mencapainya dengan rutin powershell sederhana pada pipa CI / CD yang akan menyalin file dari proyek SQL Server ke proyek SDK:PS: File-file harus secara fisik di proyek SDK, baik di root atau pada beberapa folder, jadi tautan ke
.sdk
file dalam proyek SQL Server tidak akan berfungsi. Secara teori, seharusnya bisa menyalin file-file ini dengan kondisi pra-bangun, tetapi untuk beberapa alasan yang tidak jelas, ini tidak berfungsi untuk saya. Saya mencoba juga untuk memiliki.sql
file pada proyek SDK dan menautkannya ke proyek SQL Server, tetapi itu akan dengan mudah memutus tautan dengan SQL Server Object Explorer, jadi saya memutuskan untuk membatalkan ini juga.sumber