【问题标题】:How can you remove empty or blank lines from a text file using MSBuild?如何使用 MSBuild 从文本文件中删除空行或空行?
【发布时间】:2011-12-29 22:54:42
【问题描述】:

我想使用 MSBuild 从文件列表中删除所有空白行(只有一些空格和换行符的行)。

最好的方法是什么?

我知道我可以用 C# 或 VB.NET 编写一个 MSBuild 插件,它可以使用简单的正则表达式替换来完成此任务,但我更喜欢不需要我这样做的解决方案。

如果有一个开源的 MSBuild 插件可以做到这一点 - 我也欢迎这个解决方案。

【问题讨论】:

  • 内联任务不可能吗?
  • 完全没有 --- 我想我不熟悉这个 --- 这会是在 MSBuild 脚本文件本身中编写 C# 来完成此操作的能力吗?
  • 是的,它基本上是一个任务(就像你一样),但内联。 msdn.microsoft.com/en-us/library/dd722601.aspx
  • 在FileUpdate task 上申请second RegEx from accepted solution。 (我的回答转为评论)
  • 我从 FileUpdate 收到一个错误,指出 ReplacementText 不能为空(替换为空字符串)

标签: msbuild msbuild-task


【解决方案1】:

@Ludwo 是对的,您必须考虑空格字符。此外,要使用空字符串替换任何文本,您需要使用 ReplacementTextEmpty property 而不是将空字符串传递给 ReplacementText 属性。因此,以下目标应该可以解决问题:

<Target Name="Minify">
  <ItemGroup>
    <File Include="**\*.cs" />
  </ItemGroup>
  <FileUpdate
    Files="@(File)"
    Regex="(\n\s*\n)+"
    Multiline="False"
    ReplacementTextEmpty="True"/>
</Target>

您只需要通过 MSBuild 调用目标:

msbuild MyProject.csproj /t:Minify

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 2012-12-07
    • 2011-09-22
    • 2013-01-12
    相关资源
    最近更新 更多