Gon*_*gle 1 msbuild msbuild-task azure-devops
在 Azure DevOps 中,是否可以在构建任务期间导出在 MSBuild 任务中定义的少数 MSBuild 属性,并将这些属性用作构建作业中其他任务的变量?
用例:构建期间计算的版本号
我们创建了一个 MSBuild 任务,作为构建的一部分,从 git 标签确定版本号。MSBuild 任务使用它来设置程序集版本以及作为构建的一部分打包的可能的 nuget 包。
现在,在设置 Azure DevOps 构建管道时,我有一个单独的步骤来构建服务的安装程序(使用高级安装程序的 .msi)。我需要在 MSBuild 任务期间确定版本并将其传递给 Advanced Installer 构建任务,因此可以对其进行相应的版本控制。如何做到这一点?
作为一种解决方法,我们之前一直使用单独的构建任务,其中版本已使用 bash 脚本确定。然后导出到 VSO 变量并传递给MSBuild和Advanced Installer build两个任务(MSBuild 任务可以使用预定义的属性作为版本值)。现在我想摆脱计算版本的重复方式。
只要不关闭 msbuild 的控制台日志记录,就可以在 csproj 文件中使用日志记录命令:
<Target Name="SetAzureDevOpsVariables" BeforeTargets="BeforeBuild">
<Message Importance="high"
Text="##vso[task.setvariable variable=ProductVersion]$(Version)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
$(Version)将由的msbuild与属性的值被取代(可以使用PackageVersion,FileVersion等),代理将解释从MSBuild的输出内容的命令。Importance="high"将确保即使减少日志详细程度也会打印消息。
请注意,您还可以Condition="'$(SYSTEM_TEAMPROJECTID)' != ''"在<Target>元素上放置 ,以仅在 Azure DevOps 版本上运行此输出。
| 归档时间: |
|
| 查看次数: |
1859 次 |
| 最近记录: |