如何使用MSBuild从文本文件中删除空行或空行?

时间:2011-11-15 22:32:01

标签: msbuild msbuild-task

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

实现这一目标的最佳方法是什么?

我认识到我可以用C#或VB.NET编写一个MSBuild插件,它可以使用简单的Regex替换来实现,但是我更喜欢一个不需要我这样做的解决方案。

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

1 个答案:

答案 0 :(得分:0)

@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