2016-10-04 28 views
1

其他問題MSBUILD Splitting text file into lines)提到了特定於實現的替代方法,但似乎沒有一個直接解決如何根據endlines將簡單字符串屬性拆分爲項目組。在MSBuild中,如何在末端分割字符串?

你怎麼能做到這一點?嘗試沒有工作:

  • <ItemGroup> <SplitLines Include="$(SourceString.Split('\r\n'))" /> </ItemGroup>(上'r'拆分或'n'
  • <ItemGroup> <SplitLines Include="$(SourceString.Split('%0A%0D'))" /> </ItemGroup>(不分裂的話)

如果你是好奇:SourceString是需要拆分的Exec命令的輸出,所以ReadLinesFromFile不是一個選項。它不能輸出到中間文件,因爲文件系統很慢,這需要由關心文件操作的構建過程使用。

回答

1

使用屬性函數是要走的路,您可以使用例如'C#拆分字符串行'在你選擇的搜索引擎中,然後翻譯答案。這與this SO question和Regex.Split方法是最容易實現:

<ItemGroup> 
    <SplitLines Include="$([System.Text.RegularExpressions.Regex]::Split(`$(SourceString)`, `\r\n|\r|\n`))" /> 
</ItemGroup> 
+0

完美的答案。謝謝! – Josh