【问题标题】:In MSBuild, how to split a string on endlines?在 MSBuild 中,如何在 endlines 上拆分字符串?
【发布时间】:2017-02-13 04:40:02
【问题描述】:

其他问题 (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 不是一个选项。它无法输出到中间文件,因为文件系统很慢,需要由关心文件操作的构建进程使用。

【问题讨论】:

    标签: string split msbuild


    【解决方案1】:

    使用属性函数是可行的方法,您可以使用例如搜索解决方案'C# split string lines' 在您选择的搜索引擎中,然后翻译答案。这提出了this SO question,Regex.Split 方法是最容易实现的:

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

    【讨论】:

    • 完美答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    相关资源
    最近更新 更多