Предотвращение архивирования в задаче VSBuild в Azure DevOps

#azure-devops #msbuild #azure-pipelines #.net-framework-version #azure-pipelines-yaml

#azure-devops #msbuild #azure-конвейеры #.net-framework-version #azure-конвейеры-yaml

Вопрос:

Я хотел бы скопировать содержимое папки Angular UI dist в опубликованный контент, в частности wwwroot при использовании задачи VSBuild, как показано ниже

 - task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.ArtifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
 

Мои два вопроса

  1. отвечает ли эта задача за публикацию, которую мы выполняем вручную в Visual Studio, и, следовательно, могу ли я ожидать, что папка wwwroot будет присутствовать в соответствующем целевом расположении?
  2. Как мне сказать zip: false в приведенной выше команде, чтобы я мог скопировать необходимое содержимое, а затем заархивировать позже?

Спасибо, АК

Комментарии:

1. Привет, я обновил свой ответ. Пожалуйста, проверьте, может ли это вам помочь.

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

Ответ №1:

отвечает ли эта задача за публикацию, которую мы выполняем вручную в Visual Studio, и, следовательно, могу ли я ожидать, что папка wwwroot будет присутствовать в соответствующем целевом расположении?

ДА. Для этого можно использовать аргументы msbuild:

 msbuildArgs: '/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:DeleteExistingFiles=True /p:publishUrl="$(build.artifactStagingDirectory)"'
 

Используется /p:WebPublishMethod=FileSystem для вывода результатов в виде файлов, а не zip. Используется /p:publishUrl={target location} для указания местоположения вывода.

Как мне скопировать необходимое содержимое, а затем выполнить архивирование позже?

Добавьте следующий скрипт в свой .csproj файл:

   <ItemGroup>
    <None Update="wwwroot**" CopyToOutputDirectory="drop" />
  </ItemGroup>