Microsoft.WebApplication.targets не был найден на сервере сборки. Какое у тебя решение? - PullRequest
386 голосов
/ 20 октября 2010

При попытке построить мой проект на сервере сборки возникает следующая ошибка:

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.

Я решил эту проблему несколько месяцев назад, установив Visual Studio 2010 на Build Server.Но теперь я настраиваю новый сервер с нуля, и я хочу знать, есть ли лучшее решение для решения этой проблемы.

Ответы [ 19 ]

8 голосов
/ 08 июня 2017

Кажется, что новая версия msbuild не поставляется с Microsoft.WebApplication.targets.Для исправления необходимо обновить файл csproj следующим образом:

1) Отредактируйте веб-приложение csproj (щелкните правой кнопкой мыши).Найдите раздел в csproj внизу, посвященный инструментам сборки.Это должно выглядеть так.

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
</PropertyGroup>  
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />  
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />  

2) Вам нужно добавить одну строку VSToolsPath ниже тега VisualStudioVersion, чтобы она выглядела так

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <!--Add the below line to fix the project loading in VS 2017 -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  <!--End -->
</PropertyGroup>  
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />  
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />  

Ссылка: https://alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/

8 голосов
/ 23 февраля 2014

Это все, что вам нужно. Всего 103 МБ. Не устанавливайте все

enter image description here

5 голосов
/ 21 октября 2010

Я нашел это на MS connect :

Да, вам нужно установить Visual Studio 2010 на вашей сборочной машине для сборки база данных проектов. Это делает не требует дополнительной лицензии Visual Studio.

Итак, это единственный вариант, который у меня есть на данный момент.

2 голосов
/ 27 октября 2015

Я попробовал кучу решений, но в итоге этот ответ сработал для меня: https://stackoverflow.com/a/19826448/431522

В основном это вызывает вызов MSBuild из каталога MSBuild, а не из каталога Visual Studio.

Я также добавил каталог MSBuild в свой путь, чтобы облегчить кодирование сценариев.

2 голосов
/ 07 ноября 2014

Я исправил это, добавив
/p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"

в
Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments

2 голосов
/ 08 марта 2018

Любой, кто приезжает сюда для Visual Studio 2017. У меня была похожая проблема, и я не смог скомпилировать проект после обновления до 15.6.1.Я должен был установить инструменты MSBulild, но все же ошибка была там.

Мне удалось устранить проблему, скопировав папку v14.0 из C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio в ту же папку, что и v15.0, и это устранило все ошибки.Теперь моя структура папок выглядит следующим образом: обе папки содержат одинаковое содержимое.

enter image description here

2 голосов
/ 31 июля 2014

Мое решение представляет собой сочетание нескольких ответов здесь.

Я проверил сервер сборки, и Windows7 / NET4.0 SDK уже был установлен, поэтому я нашел путь:

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v9.0 \ WebApplications \ Microsoft.WebApplication.targets`

Однако в этой строке:

$ (MSBuildExtensionsPath) расширяется до C: \ Program Files \ MSBuild , в котором нет пути.

Поэтому, что ябыло создать символическую ссылку с помощью этой команды:

mklink / J "C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio" "C: \ Program Files (x86) \ MSBuild \ Microsoft \VisualStudio "

Таким образом, $ (MSBuildExtensionsPath) расширяется до допустимого пути, и никаких изменений не требуется в самом приложении, только на сервере сборки (возможно, можно создать символическую ссылку для каждой сборки, чтобыубедитесь, что этот шаг не потерян и «задокументирован»).

0 голосов
/ 21 декабря 2018

Если вы используете MSBuild, как в случае с сервером сборки, у меня сработало следующее:

Измените следующее:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

до:

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

Моя команда Msbuild: *"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" solution.sln /p:Configuration=Debug /p:Platform="Any CPU"*

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 04 сентября 2018

В случае, если вы пытаетесь развернуть проект с использованием VSTS, проблема может быть связана с проверкой опции «Хостинг Windows Контейнер» вместо «Хостинг VS2017» (или 18 и т. Д.):

enter image description here

...