我想从使用MSBuild的文件列表中删除所有空白行(只有一些空格和换行符的行)。
实现这一目标的最佳方法是什么?
我认识到我可以用C#或VB.NET编写一个MSBuild插件,它可以使用简单的Regex替换来实现,但是我更喜欢一个不需要我这样做的解决方案。
如果有一个开源的MSBuild插件可以做到这一点 - 我也欢迎这个解决方案。
答案 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