Pertanyaan v11.0 \ WebApplications \ Microsoft.WebApplication.targets tidak ditemukan ketika file sebenarnya referensi v10


Pertama, beberapa latar belakang. Pada akhir 2012, kami memigrasikan solusi vs2008 kami ke vs2010 tetapi kami masih menargetkan .NET 3.5. (Saya tidak tahu apa pun kecuali yang terbaru dan terhebat di sini!)

Kami tidak memiliki masalah dengan penyiapan ini hingga beberapa minggu yang lalu ketika orang mulai mendapatkan kesalahan ini:

"foo.csproj" (Rebuild target) (16:5) ->
  C:\...\foo.csproj(142,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 declaration is correct, and that the file exists on disk.

Yang menarik adalah jika Anda melihat file proyek, referensi v10 yang masuk akal karena kami tidak menggunakan Visual Studio 2012.

Kesalahan ini menyerang beberapa dari kita sekaligus dan bahkan pada cabang kode yang lebih lama yang tidak berubah dalam beberapa bulan.

Saya mencurigai beberapa pembaruan terdorong ke mesin kami yang membingungkan tetapi saya tidak tahu apa yang harus dilakukan.

Solusi jangka pendek adalah menginstal VS 2012 dan tidak menggunakannya tapi saya berharap untuk sesuatu yang sedikit lebih bersih dari itu.


75
2017-07-02 19:12


asal


Jawaban:


Saya mengalami masalah yang sama dengan Visual Studio 2013. Ternyata saya menggunakan versi lama MSBuild - yang dikirimkan dengan .NET Framework - dari baris perintah. Microsoft kini merilis MSBuild sebagai bagian dari Visual Studio itu sendiri dan juga sebagai pemasang terpisah (http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx).

Solusinya adalah menggunakan versi baru MSBuild.exe yang terletak di C:\Program Files (x86)\MSBuild\12.0\Bin. Setelah saya melakukan itu, semua kesalahan target menghilang.

EDIT 1

Seperti disebutkan dalam komentar, setiap versi baru MSBuild membawa serta direktori baru. Untuk Visual Studio 2015, gunakan C:\Program Files (x86)\MSBuild\14.0\Bin.

EDIT 2

Seperti yang disebutkan dalam komentar, untuk Visual Studio 2017, gunakan C:\Program Files (x86)\Microsoft Visual Studio\2017\<Edition>\MSBuild\15.0\Bin\MSBuild.exe.


106
2017-11-07 01:43



Jika Anda memiliki server build yang tidak memiliki VS2012 terinstal, Anda dapat memperbaikinya dengan

a) menginstal MSBuild.Microsoft.VisualStudio.Web.targets paket ke solusi Anda, dan

b) mengganti baris ini dalam file .csproj:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Dengan garis ini menunjuk ke paket nuget

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="true" />

EDIT

Sebagai @joedragons menunjukkan versi di baris yang diperbarui harus cocok dengan versi paket nuget, yaitu ganti targets.11.0.2.1 dengan targets.x.x.x.x untuk versi saat ini.


49
2017-10-28 03:07



Solusi sederhana untuk masalah ini:

Pergi ke jalur berikut:

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio

Anda akan melihat versi terbaru V10.0, v11.0, v12.0 tergantung pada pemasangan Visual Studio 2010, 2012 atau 2013 Anda.

Salinan WebApplications folder dari salah satu direktori versi terbaru dan tempel ke yang lain.

Masalah Anda harus diselesaikan.


23
2018-04-15 10:49



Saya telah menemukan bahwa menginstal gratis Shell Visual Studio 2012 (Terisolasi) menginstal file WebApplications v11 MSBuild. Lebih ringan daripada instalasi penuh Visual Studio 2012 dan tidak ada masalah lisensi.


9
2017-11-11 07:22



Wow. Kami baru saja melihat hal yang sama terjadi pada mesin build kami. Kami menggunakan VS2010 dan target .NET 4.0. File proyek kami secara eksplisit mengimpor versi v10.0 dari target ini. Dengan tidak ada perubahan pada kode, kemarin build baik-baik saja dan hari ini gagal dengan keluhan tentang versi v11.0 yang hilang. .NET Framework 4.5.1 terinstal / diperbarui tadi malam pada mesin build ini sebagai pembaruan otomatis. Kita akan memaksakan v10.0 dengan parameter (atau variabel env.), Tetapi ini tentu saja mengejutkan kita ...

UPDATE: Apa yang lebih aneh, adalah bahwa tampaknya kasus versi msbuild saat ini tampaknya menggunakan baris pertama dari file sln untuk menentukan VisualStudioVersion yang digunakan secara default, sedangkan versi kemarin tidak:

Format Version 12.00

Kami menguji secara manual mengubah ini menjadi 11.00 dan membangun mulai bekerja lagi.

Dalam kasus kami, meskipun kami menargetkan dan membangun semuanya untuk tahun 2010 / 4.0, beberapa devs telah bersiap untuk VS2012 (karena MS mengklaim bahwa file proyek tersebut kompatibel), dan solusi khusus ini terakhir disimpan (bulan lalu) di VS2012. Sebelum hari ini, itu tidak menyebabkan masalah.


8
2018-01-15 16:57



Saya memiliki masalah yang sama. Diperbaiki dengan melalui solusi yang tercantum di atas. Masalah ini disebabkan karena versi yang sesuai dari Visual Studio Tools (BuildTools) tidak tersedia di server Build. Sebagaimana ditunjukkan dengan benar di atas, ini dapat diatasi dengan menginstal BuildTools tetapi bukan pilihan dalam kasus saya.

Di sini ada alternatif lain - gunakan Nuget

Install-Package MSBuild.Microsoft.VisualStudio.Web.targets -Version 14.0.0.3

Identifikasi proyek start up dan Instal web.targets berdasarkan versi Visual studio yang digunakan. File-file berikut akan dimodifikasi yang mencakup perubahan yang diperlukan

Di packages.config:

<package id="MSBuild.Microsoft.VisualStudio.Web.targets" version="14.0.0.3" targetFramework="net45" />

Di .csproj:

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props" Condition="Exists('..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props')" />

Semoga ini membantu!!! Semoga berhasil,

Tepuk tangan,

Pavan


4
2017-12-15 07:55



Peretasan, tetapi dipecahkan dengan menyalin: c: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications *. * untuk c: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications *. *


3
2018-02-28 10:14



Saya mendapatkan kesalahan ini pada akhir November tanpa membuat perubahan apa pun pada konfigurasi instalasi TeamCity saya atau instalasi MSBuild atau kode sumber. Pada server build saya Visual Studio bahkan tidak diinstal, dan perubahan dari VS2010 ke VS2012 dibuat pada akhir Agustus tanpa masalah pada saat itu.

Versi MSBuild saya adalah 4.0.30319.18408, server build saya adalah Windows Server 2008 R2 SP1 dengan TeamCity v6.5.3.

Saya memecahkan masalah dengan hanya menyalin folder v11 dari server lain yang tidak terpengaruh.

Tebakan saya adalah ini bisa terjadi dalam dua cara:

  1. Ada sesuatu yang diperbarui yang memicu penghapusan folder v11. Mungkinkah itu Pembaruan Windows untuk. NET atau sesuatu?

  2. Sesuatu telah diperbarui yang mengubah konfigurasi TeamCity / MSBuild saya dari menggunakan v10 ke v11 dan build berhenti berfungsi karena v11 tidak pernah ada.

Saya punya pembaruan untuk .NET Framework 4.5.1 pada 3 Desember, mungkinkah itu alasannya?

Brgds

Jonas


1
2017-12-12 08:30



Saya baru saja terjebak dengan masalah yang sama. Dan kesimpulan saya adalah bahwa setiap versi VS (v10, v11, v12) mengubah jalur variabel build, seperti MSBuildBinPath.

Jadi, menentukan versi pasti dari VS bukanlah peretasan, karena Anda mungkin bahkan tidak memiliki versi file yang sesuai yang diinstal. Jadi intead Anda sebaiknya menentukan parameter dan menggunakan target yang ada di komputer Anda.

Dalam beberapa kasus yang jarang Anda mungkin perlu menginstal versi spesifik dari paket VS dan Web Deploy. Dalam kasus saya, hanya versi saja yang cukup untuk memecahkan masalah.


0
2017-11-04 21:36



Anda dapat menambahkan properti VisualStudioVersion seperti ini:

<ItemGroup>
  <ProjectToBuild Include="$(MSBuildProjectDirectory)\..\MySolution.sln">
    <Properties>Configuration=$(BuildConfiguration);WarningLevel=0;VisualStudioVersion=12.0</Properties>
  </ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild"/>

0
2018-04-13 09:47



Saat saya mencari cara menyelesaikannya, hampir semua orang menyarankan untuk menyalin folder MSBUILD yang hilang atau memasang beberapa versi SDK.

Untungnya, saya telah menemukan posting yang sangat bermanfaat ini oleh Donovan Brown: http://donovanbrown.com/post/So-sick-of-MicrosoftWebApplicationtargets-was-not-found-build-errors!

Singkatnya, idenya adalah untuk mengkonfigurasi versi VisualStudio yang harus digunakan oleh build Anda dalam Definisi Build:

Klik kanan -> "Edit Build Definition ..."

Pergi ke "Procss" -> "3. Advanced"

dan atur "Argumen MSBuild" dengan

/p:VisualStudioVersion=12.0

0
2018-03-08 10:50