【问题标题】:Prevent Zipping in VSBuild task in Azure DevOps在 Azure DevOps 中防止压缩 VSBuild 任务
【发布时间】:2020-12-21 12:51:13
【问题描述】:

我想将 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-devops msbuild azure-pipelines .net-framework-version azure-pipelines-yaml


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多