有没有办法让我的MSBuild的特性(从.props
文件)作为在Visual Studio团队服务构建定义变量?MSBuild的属性,如VSTS变量构建定义
我想它,如果它有一个内置的方式,但我确定有一个扩展。
有没有办法让我的MSBuild的特性(从.props
文件)作为在Visual Studio团队服务构建定义变量?MSBuild的属性,如VSTS变量构建定义
我想它,如果它有一个内置的方式,但我确定有一个扩展。
这可以通过创建记录含有的VSTS logging commands形式所需要的属性信息MSBuild项目(或目标在一个现有的项目)来完成。然而,MSBuild不能“枚举”定义的属性,所以这只适用于众所周知的属性 - 这可能很好,以避免意外碰撞(即使环境变量是MSBuild内的“属性”)。
给定的样本some.props
文件:
<Project>
<PropertyGroup>
<PackageId>a.package.id</PackageId>
<Version>1.2.3</Version>
<Description>I am your test project</Description>
</PropertyGroup>
</Project>
和示例emitvars.proj
:
<Project>
<Import Project="some.props" />
<Target Name="Build">
<Message Importance="high" Text="##vso[task.setvariable variable=PackageId]$(PackageId)" />
<Message Importance="high" Text="##vso[task.setvariable variable=Version]$(Version)" />
<Message Importance="high" Text="##vso[task.setvariable variable=Description]$(Description)" />
</Target>
</Project>
该项目文件可以被 “建造” 在一个MSBuild任务(或dotnet msbuild
在Linux机器上使用。 NET Core工具):
出于演示的目的,我补充说,使用这些变量的PowerShell任务:
构建然后使用变量在脚本预期。请注意,设置变量的日志行可能不会显示在构建日志中。
感谢您的回答,我清楚我应该怎么做才能让它工作。当它成功时,我会接受你的回答。 :) –
@MitchelVreman现在的结果是什么?你解决这个问题吗? –
@MartinUllrich @ starain-MSFT我固定我的问题与安装extention:[变量任务包(https://marketplace.visualstudio.com/items?itemName=YodLabs.VariableTasks&targetId=a0d69947-cbad-4c04-83eb-9e08fe68f333) 。这个扩展给我的任务:_从XML_中设置变量的值我可以从'.props'文件中用xPath获取我的版本。 –
你能澄清:你有一个道具文件,并希望将其解压到变量?所以'PropertyGroup> PropA'将在随后的构建任务中可用? –
@MartinUllrich,是的,我想例如'<的PropertyGroup> 1.0.0 的PropertyGroup>'并希望在构建定义,例如使用它:'$(PropertyGroup.Version)'或者类似的东西。 –