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

时间:2009-07-02 16:54:56

标签: msbuild

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

我认为可能正在执行一个Exec任务,对我的文件执行“更多”操作,并且捕获标准输出可以解决问题,但我似乎无法使其工作。似乎其他人也遇到了stdout和MSBuild的问题。这是我尝试过的:

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

1 个答案:

答案 0 :(得分:9)

ReadLinesFromFile任务就是你想要的

<ReadLinesFromFile File="Version.Txt">
    <Output TaskParameter="Lines" Item="BuildNumber"/>
</ReadLinesFromFile>

那说,你的问题所暗示的另一种方法是在xml文件中存储构建num信息,并使用MSBuild模式

类似

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <BuildNumber>10</BuildNumber>
   <RevNumber>5</RevNumber>
 </PropertyGroup>
</Project>

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