其他问题(MSBUILD Splitting text file into lines)提到了特定于实现的替代方案,但似乎没有一个直接解决如何根据轮次将简单的字符串属性拆分为项目组。
你怎么能这样做?尝试不起作用:
<ItemGroup>
<SplitLines Include="$(SourceString.Split('\r\n'))" />
</ItemGroup>
:(分为'r'
或'n'
) <ItemGroup>
<SplitLines Include="$(SourceString.Split('%0A%0D'))" />
</ItemGroup>
:(根本不拆分) 如果您感到好奇:SourceString
是需要拆分的Exec
命令的输出,因此ReadLinesFromFile
不是一个选项。它无法输出到中间文件,因为文件系统很慢,而且需要由关心文件操作的构建进程使用。
答案 0 :(得分:1)
使用属性函数是可行的方法,您可以使用例如&#39; C#split string lines&#39;在您选择的搜索引擎中,然后翻译答案。这提出了this SO question,Regex.Split方法最容易实现:
<ItemGroup>
<SplitLines Include="$([System.Text.RegularExpressions.Regex]::Split(`$(SourceString)`, `\r\n|\r|\n`))" />
</ItemGroup>