简单了解 .NET 项目文件中的“项”
什么是项?
<ItemGroup>
<Compile Include = "file1.cs"/>
<Compile Include = "file2.cs"/>
</ItemGroup>
注意:Include 属性是相对于项目文件的文件夹 $(MSBuildProjectPath) 解释的路径。
综上所得,项
- 必须是 ItemGroup 的元素
- Compile 是项的类型,Include 是项的属性。
如何在项文件中引用项?
@(Compile)
引用项用 @ 符号,属性用 $ 符号。
项通配符
- (?) 通配符匹配单个字符。
- (*) 通配符匹配零个或多个字符。
- (**) 通配符序列匹配部分路径。
什么是项元数据?
<ItemGroup>
<CSFile Include="one.cs;two.cs">
<Culture>true</Culture>
</CSFile>
</ItemGroup>
其中项类型 CSFile 中包含 Culture 项元数据。
综上所示,项元数据是
- 项元素的子元素。
- 子元素的名称是元数据的名称。
- 子元素的值是元数据的值。
怎么引用项元数据?
<ItemGroup>
<CSFile Include="one.cs;two.cs">
<Culture>true</Culture>
</CSFile>
</ItemGroup>
<Target Name="Batching">
<Message Text="@(CSFile)" Condition=" '%(Culture)' == 'true' "/>
</Target>
可以使用 %(CSFile.Culture) 引用项元数据。
常见项元数据:https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild-well-known-item-metadata?view=vs-2022
项定义
从.NET Framework 3.5 起,即可使用 ItemDefinitionGroup 元素向任何项类型添加默认元数据。 与已知元数据一样,默认元数据与指定项类型的所有项关联。 可在项定义中显式重写默认元数据。 例如,下面的 XML 向 Compile 项“one.cs”和“three.cs”提供值为“Monday”的 BuildDay 元数据 。 代码会向“two.cs”项提供值为“Tuesday”的 BuildDay 元数据。
<ItemDefinitionGroup>
<Compile>
<BuildDay>Monday</BuildDay>
</Compile>
</ItemDefinitionGroup>
<ItemGroup>
<Compile Include="one.cs;three.cs" />
<Compile Include="two.cs">
<BuildDay>Tuesday</BuildDay>
</Compile>
</ItemGroup>
需要参考 项定义 链接:https://docs.microsoft.com/zh-cn/visualstudio/msbuild/item-definitions?view=vs-2022
这个链接描述了如何自定义自己的一个项。
好了,这里只做初步的介绍。需要更详细的信息以及操作实例,自己去查官方文档吧!
浙公网安备 33010602011771号