Что импортирует файл Microsoft.WebApplication.targets в проектах веб-приложений VS 2010?

Visual Studio 2010, похоже, настаивает на том, что этот импорт в проектах веб-приложений

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

Что этот импорт дает нам, и действительно ли это необходимо?

На стороне примечания, если вы удалите этот импорт с помощью текстового редактора, Visual studio снова его добавит.

Причина, по которой я спрашиваю, - это когда проект компилируется на сервере сборки, цель которого не существует и не существует, потому что визуальная студия не установлена.

Ответы

Ответ 1

Содержит записи для MSBuild C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications

Используйте параметр публикации в VS 2010 для создания почтового пакета, который можно развернуть на вашем сервере (MS Deploy)

читайте это: http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html

Какой сервер сборки вы используете?

Ответ 2

Как указано в комментариях к Радж Каймалу, ответьте, чтобы получить эту работу, вы можете скопировать папку в одно и то же место на машине сборки.

Если вы хотите, вы также можете поместить эту папку в другое место на своем компьютере, даже относительно вашего проекта. Вам просто нужно добавить что-то в csproj для перенаправления MSBuildExtensionsPath..

Например, у меня есть следующее в моем csproj (работает для VS2010 и VS2012):

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<PropertyGroup>
    <MSBuildExtensionsPath32>..\lib\MSBuild.MSVS\</MSBuildExtensionsPath32>
</PropertyGroup>  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/>

Затем, в моей папке lib (которая является дочерним элементом папки, содержащей csproj), я скопировал следующие каталоги:

  • % ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications → MSBuild.MSVS\Microsoft\VisualStudio\v10.0\WebApplications
  • % ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\Web → MSBuild.MSVS\Microsoft\VisualStudio\v10.0\Web

Ответ 3

У нас есть ситуация, когда наш сервер сборки CI также размещает некоторые веб-сайты. У него нет установленной версии Visual Studio, поэтому ссылка на MSBuildExtensions сломала нашу сборку на обновление до vs2010/.net4.0.

Кажется, что излишнему приходится устанавливать VS2010 на машине сборки, если она не является машиной dev... я мог бы просто установить пакет расширения MSBuild (http://msbuildextensionpack.codeplex.com/) на сервере сборки и все ли получится? В настоящее время я не могу проверить, что это работает, но из того, что я смог выполнить до этого поста, он выглядит лучше, чем установка VS2010.

-Daniel

Ответ 4

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