Не удается найти целевой объект MSBuild PipelinePreDeployCopyAllFilesToOneFolder при развертывании
Развертывание проекта веб-приложения из VS2010 RTM приводит к ошибке в MSBuild. Он жалуется, что цель PipelinePreDeployCopyAllFilesToOneFolder не может быть найдена.
Есть ли способ для дальнейшей диагностики этого?
Спасибо.
4 ответа
У меня была такая же проблема, и когда я посмотрел в файле.csproj для моего веб-приложения, у меня были следующие строки...
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
Я предполагаю, что это произошло с тех пор, как я недавно перешел с VS2008 на VS2010. Похоже, что во время процесса конвертации все облажалось. Чтобы исправить это, я просто заменил эти строки на...
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
После этого все заработало как надо.
Я видел ответ, данный Броди в нескольких местах в Интернете, что странно для меня, потому что эта задача (PipelinePreDeployCopyAllFilesToOneFolde r) даже не содержится в этой цели (Microsoft.WebApplication.targets):
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Если вы действительно найдете этот файл (на компьютере x64 он находится в C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets или в версии 12.0, если вы ' повторно используя VS2013) и откройте его в средстве просмотра текста, вы увидите, что его там нет..
На самом деле он содержится в файле, который упоминает Сайед Ибрагим Хашими, который является файлом Microsoft.Web.Publishing.targets (C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing цели).
Таким образом, чтобы вставить это в ваш файл MSBuild/.csproj, включите следующее:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
У вас установлена Visual Studio 2010 на компьютере, где вы пытаетесь собрать? Если это так, то найдите файл, расположенный по адресу %Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets, у которого должна быть эта цель. Если этого не произойдет, возможно, эти файлы были повреждены, и, вероятно, исправление установки VS 2010 должно исправить это.
Я думаю, что цели / задачи Web Deployment поставляются с самой VS, а не с платформой.NET, поэтому вам нужно установить VS (или вы можете вручную настроить машину)/
Несмотря на то, что это старый пост, он все же оказал большую помощь!
Моя установка использует удаленный хост для автоматизации проекта, созданного в VS2013. Удаленный хост не содержит все цели VS2013, когда вы устанавливаете только MSBuild 12.0, и в результате файл "Microsoft.Web.Publishing.targets" не существует.
Чтобы обойти эту целевую ошибку, мне пришлось скопировать файлы с моего локального пути VS2013 и скопировать его на удаленный хост в эквивалентном месте.