首页 > 解决方案 > Windows 服务的 Azure 构建任务:- $(build.artifactstagingdirectory) 下没有 zip

问题描述

我们有一个 azure 管道,它在 $(build.artifactstagingdirectory) 中生成一个 zip 工件。稍后我们提取它并部署到目标文件夹。这适用于网站。msbuildargs 如下所示:-

msbuildArgs : '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'

我们有一个不会生成任何 zip 工件的 Windows 服务。在下面的文章之后。我在 msbuildargs 中添加了 /p:OutDir="$(build.stagingDirectory),现在我可以看到文件,但没有 zip 文件。我们实际使用的。

msbuildArgs : '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)" /p:OutputPath="$(Build.ArtifactStagingDirectory)"'

zip 工件是否有任何 csproj 设置?Windows服务的任何特定设置?找不到 PackageAsSingleFile 的更多文档。

标签: azureazure-devops

解决方案


zip 工件是否有任何 csproj 设置?Windows服务的任何特定设置?找不到 PackageAsSingleFile 的更多文档。

大多数 MSBuild 参数都适用于 ASP .NET 项目,并且对 Windows 服务(控制台应用程序)没有任何作用。

我们只需要使用/p:OutDir=$(Build.ArtifactStagingDirectory). 这将告诉 MSBuild 将构建输出放在工件暂存目录中。

但这仍然不会生成带有参数的 zip 包/p:OutDir=$(Build.ArtifactStagingDirectory)。如果要生成 zip,我们可以使用任务存档文件

此外,我们可以将文件夹更改/p:OutDir为其他文件夹,以便我们可以使用存档文件任务来生成 zip,例如:

/p:OutDir=$(System.DefaultWorkingDirectory)/output

然后使用归档文件任务:

在此处输入图像描述


推荐阅读