Целевой пакет MSBuild не найден

Я хочу упаковать свой проект веб-приложения VS2010, готовый для развертывания с помощью msdeploy. На машине разработки я могу это сделать, используя:

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package

Но на моем сервере сборки я получаю эту ошибку:

error MSB4057: Целевой "пакет" не существует в проекте.

Что мне не хватает на сервере сборки?

Ответ 1

Я просто получил эту работу без установки VS2010, выполнив следующие шаги на сервере сборки:

  • Если .NET Framework 4 не установлен, установите его
  • Установите инструмент Web Deployment из http://www.iis.net/download/webdeploy
  • В папке C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0 на вашем компьютере-разработчике скопируйте папки "Web" и "Веб-приложения" в эквивалентную директорию на вашем сервере сборки.

Кажется, это работает для меня

Ответ 2

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

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
    \v11.0\Web\Microsoft.Web.Publishing.targets

Он импортируется:

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

Надеюсь, это поможет кому-то вроде меня:)

Ответ 3

У вас должен быть установлен .Net 4.0 на сервере сборки. Установка .Net 4.0 добавит новый MSBuild 4.0, который поддерживает проекты веб-приложений для упаковки.

Кроме того, при запуске msbuild.exe убедитесь, что вы используете тот, который находится в папке framework.Net 4.0.

Ответ 4

У меня возникла одна и та же проблема. Завершилось решение, добавив следующее:

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

<Import Project="$(MSBuildToolsPath)\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" />

для моего .csproj fiie.

Ответ 5

Вы можете установить MSBuild.Microsoft.VisualStudio.Web.targets пакет. Нет необходимости вручную копировать цели для сборки сервера.

Ответ 6

Также рассмотрите возможность использования msbuild с версией, соответствующей версии инструмента Web Deployment. Я столкнулся с такой же проблемой, как и у ОП. Решение заключалось в изменении msbuild с 4.5 до 4.0 на buildServer.

Ответ 7

Чтобы решить эту проблему, установите Visual Studio 2010 на сервер сборки и убедитесь, что вы установили функцию Visual Web Developer.