Построить пакет развертывания веб-сайта как событие пост-сборки - PullRequest
2 голосов
/ 01 июля 2010

Я использую Visual Studio 2010. У меня есть проект веб-сайта, который я хотел бы создавать пакет развертывания веб-сайта каждый раз, когда я создаю проект.По сути, я ищу пример команды MSBuild после сборки, которая в основном выполняет ту же функцию, что и опция «Build Deployment Package» в меню правой кнопки мыши на веб-сайте.

Ответы [ 2 ]

8 голосов
/ 01 июля 2010

Я предполагаю, что вы используете проекты веб-приложений, потому что проекты веб-сайтов не имеют "пакета развертывания сборки".

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

Если вы действительно хотели сделать это, лучше всего не использовать событие после сборки, а редактировать файл проекта и расширять процесс сборки. Для этого откройте файл .csproj для своей сети, а затем в нижней части ( после элементов импорта ) поместите следующий

<PropertyGroup>
  <BuildDependsOn>
    $(BuildDependsOn);
    Package
  </BuildDependsOn>
</PropertyGroup>

Расширение процесса сборки для вызова цели Package . Это та же цель, которая вызывается при вызове цели «Build Deployment Package» в Visual Studio.

0 голосов
/ 11 января 2019

Для меня ответ Сайеда не работал при выполнении msbuild из командной строки (мне нужна была цель Publish, но идея та же):

В целевом графе зависимостей существует циклическая зависимость, включающая целевую "Build"

Я не мог использовать DefaultTargets, потому что хотел публиковать в командной строке, но собирал только из VS.Вот что сработало:

<Project 
      ToolsVersion="12.0" 
      DefaultTargets="BuildAndOrPublish" 
      xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
      <BuildAndOrPublishDependsOn Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
        Build
      </BuildAndOrPublishDependsOn>  
      <BuildAndOrPublishDependsOn Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">
        Publish
      </BuildAndOrPublishDependsOn>  
  </PropertyGroup>

  <Target Name="BuildAndOrPublish" DependsOnTargets="$(BuildAndOrPublishDependsOn)"/>
...