在MSBuild中,我有一个值为Name_Something的属性。如何获得此属性的名称部分。

最佳答案

使用MSBuild 4

如果使用MSBuild 4,则可以使用新的闪亮的property functions

<PropertyGroup>
  <MyProperty>Name_Something</MyProperty>
</PropertyGroup>

<Target Name="SubString">
  <PropertyGroup>
    <PropertyName>$(MyProperty.Substring(0, $(MyProperty.IndexOf('_'))))</PropertyName>
  </PropertyGroup>

  <Message Text="PropertyName: $(PropertyName)"/>
</Target>


使用MSBuild
您可以使用MSBuild Community TaskRegexReplace任务

<PropertyGroup>
  <MyProperty>Name_Something</MyProperty>
</PropertyGroup>

<Target Name="RegexReplace">
  <RegexReplace Input="$(MyProperty)" Expression="_.*" Replacement="" Count="1">
    <Output ItemName ="PropertyNameRegex" TaskParameter="Output" />
  </RegexReplace>

  <Message Text="PropertyNameRegex: @(PropertyNameRegex)"/>
</Target>

关于msbuild - MSBuild在下划线符号之前获取属性子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3094496/

10-15 11:34