You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复制MSBuild的Names项并将每个项转为大写生成UpperNames?

在MSBuild中将项类型的每个项转为大写并生成新项类型

要将现有项类型Names中的每个项转为大写并生成新的项类型UpperNames,你需要在<ItemGroup>中使用项元数据遍历语法,结合字符串方法完成转换:

<ItemGroup>
  <UpperNames Include="%(Names.Identity.ToUpper())" />
</ItemGroup>

代码解释

  • %(Names.Identity):遍历Names项类型中的每一项,获取每个项的标识值(也就是<Names Include="..." />中的内容)。
  • .ToUpper():对获取到的每个标识值执行大写转换。
  • <UpperNames Include="..." />:将转换后的大写值添加到新的UpperNames项类型中。

完整示例

下面是包含属性转大写、项类型转换及结果验证的完整MSBuild片段:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- 属性转大写示例 -->
  <PropertyGroup>
    <Name>Sarah</Name>
    <UpperName>$(Name.ToUpper())</UpperName>
  </PropertyGroup>

  <!-- 原始项类型定义 -->
  <ItemGroup>
    <Names Include="Tim" />
    <Names Include="Sam" />
  </ItemGroup>

  <!-- 转换生成新的大写项类型 -->
  <ItemGroup>
    <UpperNames Include="%(Names.Identity.ToUpper())" />
  </ItemGroup>

  <!-- 验证转换结果的目标 -->
  <Target Name="DisplayResults">
    <Message Text="属性转大写结果: $(UpperName)" />
    <Message Text="项类型转大写结果: @(UpperNames)" />
  </Target>
</Project>

运行msbuild /t:DisplayResults命令后,输出结果如下:

属性转大写结果: SARAH
项类型转大写结果: TIM;SAM

内容的提问来源于stack exchange,提问作者Colonel Panic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:52:10