首页 > 解决方案 > 在 Azure DevOps 中防止压缩 VSBuild 任务

问题描述

我想将 Angular UI dist 文件夹内容复制到已发布的内容中,特别是使用 VSbuild 任务时的 wwwroot,如下所示

- 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 以便我可以复制所需的内容,然后再压缩?

谢谢,AK

标签: azure-devopsmsbuildazure-pipelines.net-framework-versionazure-pipelines-yaml

解决方案


此任务是否负责我们在 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>

推荐阅读