MSBuild在文件中查找值

zac*_*ary 2 cruisecontrol.net msbuild

所以我用ccnet运行我的任务,我的任务创建文件.读取文件并确定msbuild中是否存在某个值的最佳方法是什么?

Jul*_*rau 5

这取决于你的文件.

具有多行的纯文本

如果文件是这样的:

Building XXX
...
BUILD SUCCESSFUL
Total time: 38 seconds
Buildfile: file.
Run Code Online (Sandbox Code Playgroud)

您可以使用ReadLinesFromFile读取文件并CreateProperty使用a Condition来检查值.

<PropertyGroup>
  <ValueToCheck>BUILD SUCCESSFUL</ValueToCheck>
</PropertyGroup>

<Target Name="CheckValue">
  <ReadLinesFromFile File="@(MyTextFile)" >
    <Output TaskParameter="Lines" ItemName="Value"/>
  </ReadLinesFromFile>

  <CreateProperty Value="true"
                  Condition="'%(Value.Identity)' == '$(ValueToCheck)'">
    <Output TaskParameter="Value" PropertyName="ValueIsPresent" />
  </CreateProperty>

</Target>
Run Code Online (Sandbox Code Playgroud)

Xml文件

如果该文件是在XML中,你可以使用XmlPeek(的MSBuild 4)或XmlRead的MSBuild社区任务.