Подтвердить что ты не робот

Импортированный проект Microsoft.WebApplications.targets не найден

У меня есть эта ошибка при настройке непрерывной интеграции на сервере TFS, но уже нашел ответ. Возможно, это поможет другим:

The imported project "C:\Program Files (x86)\
   MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\
   Microsoft.WebApplications.targets" was not found.
4b9b3361

Ответ 1

Вам нужно либо...

  • Установите Visual Studio на свою машину сборки или
  • Вручную скопируйте содержимое папки MSBuild\Visual Studio\v10.0\WebApplications в то же место на вашей машине сборки.

Ответ 2

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

Комментарий выше строки в .CSproj. Похоже на ошибку с Microsoft, которая не удаляет или не комментирует при обновлении проекта с Visual Studio 2008 до 2010 года.

Ответ 3

Я видел ту же ошибку при настройке непрерывной интеграции с Jenkins. Я смог добавить аргумент командной строки в MSBUILD: /p:VisualStudioVersion=12.0, потому что на моем сервере сборки был установлен Visual Studio 2012.

Ответ 4

Я испытал нечто подобное.

Я написал это в нашем файле Autobuild.targets, как часть сборки. Он определяет MSWebApplicationTargets:

<MSWebApplicationTargets>$(SolutionDirectory)\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3</MSWebApplicationTargets>

Затем в файле .csproj, который является частью проекта и используется в его сборке:

<Import
     Project="$(MSWebApplicationTargets)/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets" />

Теперь наша проблема заключалась в том, что когда мы открыли проект в Visual Studio, он сказал, что c:/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets не существует (потому что VS считал MSWebApplicationTargets undefined и поэтому, по-видимому, по умолчанию использовал его c:\). Вы не предоставляете достаточно информации, хотя, возможно, это и послужило причиной вашей проблемы.

Все, что я должен был сделать, чтобы решить эту проблему, это добавить условие:

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

Зачем это делать с помощью Microsoft.WebApplication.targets

В рамках некоторого дальнейшего обсуждения я сделал это с помощью Microsoft.WebApplication.targets, поэтому нам не пришлось полагаться на установку Visual Studio на серверах сборки. Я добавил его как зависимость:

  • В Visual Studio щелкните правой кнопкой мыши проект и перейдите к manage nuget packages. Это создало файл packages.config, который перечислял MSBuild.Microsoft.VisualStudio.Web.targets как зависимость.
  • Затем я добавил nuget.exe restore в начало сборки script, чтобы загрузить зависимости.

Ответ 5

Загрузите и установите Распространяемый пакет оболочки Microsoft Visual Studio 2013 (изолированные). Или используйте прямую ссылку на vs_isoshell.exe. Я собираюсь сделать пакет NuGet для этого позже.

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

Ответ 6

И если у вас уже установлена ​​Visual Studio? Возможно, у вас установлена ​​Visual Studio 2012 (а 10.0 - VS 2010)? В этом случае вы можете просто искать файл .csproj для "10.0" и заменить его на "11.0", и тогда вы сможете просто открыть проект.

Ответ 7

У меня была эта проблема, кроме того, что эти файлы уже были. После многого устранения неполадок ответ оказался разочаровывающим: перезапустите службу агента сборки. В моем случае это было: "Visual Studio Team Foundation Build Service Host 2013"

Ответ 8

Если вы не развертываете сервер сборки, просто отключите Microsoft.WebApplication.targets на сервере сборки. См. Мой ответ здесь: fooobar.com/questions/19968/...

Ответ 9

Вот некоторые PowerShell, которые исправили эту проблему для меня, добавив отсутствующую ссылку в MSBuild.exe.config на моем сервере сборки. Настройте пути к вашей версии VS/пути к целям.

[xml]$msbuild_config = Get-Content -Path "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe.config"
$webApplicationTarget = $msbuild_config.configuration.msbuildToolsets.toolset.property[0].Clone()
$webApplicationTarget.name = "MSWebApplicationTargets"
$webApplicationTarget.value = "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications"
$msbuild_config.configuration.msbuildToolsets.toolset.AppendChild($webApplicationTarget)
$msbuild_config.save("C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe.config")'''

Ответ 10

Я также встречал эту ошибку на VS2017; затем я комментирую ниже два пункта:

<!--<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /><Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />-->

повторно открыть решение, проект может быть успешно загружен снова. (Я не знаю, как это происходит, потому что этот проект можно было нормально загрузить раньше, возможно, я недавно добавил какую-то новую функцию через vs-installer.exe)