如何复制项目并将每个项目大写?

问题描述 投票:0回答:1

在 MSBuild 中,很容易复制属性并将值大写:

<PropertyGroup>
    <Name>Sarah</Name>
    <UpperName>$(Name.ToUpper())</UpperName>
</PropertyGroup>

如何复制项目类型名称的每个项目,将其大写,并创建新的项目类型UpperNames?

<ItemGroup>
    <Names Include="Tim" />
    <Names Include="Sam" />
</ItemGroup>
msbuild
1个回答
0
投票

您可以将项目展平为属性,将其大写,然后创建新的项目类型:

<Target Name="Target1">
    <PropertyGroup>
        <FlatNames>@(Names)</FlatNames>
        <FlatNames>$([MSBuild]::Unescape($(FlatNames.ToUpper())))</FlatNames>
    </PropertyGroup>

    <ItemGroup>
        <UpperNames Include="$(FlatNames)" />
    </ItemGroup>

    <Message Text="UpperNames %(UpperNames.Identity)" />
</Target>
© www.soinside.com 2019 - 2024. All rights reserved.