使用MSBuild,如何将属性设置为文件的内容?

Kir*_*ohn 8 msbuild

我有一个使用PowerShell设置的文件,其中包含我的构建版本号.我需要在MSBuild中获取它,以便我可以在构建脚本中对其进行操作.看起来很简单; 我只想获取文件的内容并将属性设置为该值.

我想可能正在做一个Exec任务,在我的文件上做一个"更多",并且捕获标准输出就可以了,但我似乎无法让它工作.似乎其他人也遇到了stdout和MSBuild的问题.这是我尝试过的:

<Exec Command="more $(BuildDirectory)\version.txt" Outputs="stdout">
    <Output TaskParameter="Outputs" ItemName="BuildNumber" />
</Exec>
Run Code Online (Sandbox Code Playgroud)

Sco*_*ein 9

ReadLinesFromFile任务是你想要的

<ReadLinesFromFile File="Version.Txt">
    <Output TaskParameter="Lines" Item="BuildNumber"/>
</ReadLinesFromFile>
Run Code Online (Sandbox Code Playgroud)

这就是说,你的问题所暗示的另一种方法是使用MSBuild模式将你的数据信息存储在xml文件中

就像是

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <BuildNumber>10</BuildNumber>
   <RevNumber>5</RevNumber>
 </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

然后将version.properties文件导入主msbuild文件