Что импортирует файл 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/...