MSBuild 在文件中查找值

标签 msbuild cruisecontrol.net

所以我用 ccnet 运行我的任务,我的任务创建文件。从 msbuild 读取文件并确定其中是否有特定值的最佳方法是什么?

最佳答案

这取决于你的文件。

多行纯文本

如果文件是这样的:

Building XXX
...
BUILD SUCCESSFUL
Total time: 38 seconds
Buildfile: file.

您可以使用 ReadLinesFromFile 读取文件,使用 CreatePropertyCondition 检查值。

<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>

XML文件

如果文件是 Xml 格式,您可以使用 XmlPeek (MSBuild 4) 或 XmlRead 来自 MSBuild Community Task .

关于MSBuild 在文件中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041298/

相关文章:

msbuild - TFS 2010 通过文件系统构建发布

msbuild - Azure DevOps - 错误 : The value for PublishProfile is set to 'FileSystem'

visual-studio-2012 - 升级到Visual Studio 2012后,链接文件的MSBuild错误 “CSC : error CS2001: Source File ' x'找不到”

queue - CruiseControl.NET 中的多个项目在同一队列中同时运行

svn - 当 SVN 不可用时,CruiseControl.NET 构建失败

.net - 打包csproj时如何从NuGet包中排除程序集?

asp.net - 我们可以使用 MSBuild 建立一个网站吗

cruisecontrol.net - CC.NET 仪表板错误 : Could not load type 'System.Security.Authentication.ExtendedProtection.ChannelBinding'

svn - Cruise Control.Net 最佳实践

continuous-integration - 持续集成-以什么开始: CruiseControl. NET vs TeamCity vs Visual Studio Team System