在一个标记元素中对多个引用进行分组

时间:2011-08-29 14:40:33

标签: msbuild csproj

我们正在使用一些第三方库,这些库具有一些必须从项目中引用的依赖项。

所以每个“csproj”文件都会有一堆“参考”元素,这些元素总是相同的。

有没有办法将这组元素分组到一个可以在所有csproj文件中使用的标准元素中?

例如:

<ABunchOfReferences>
    <Reference Include="Reference1" />
    <Reference Include="Reference2" />
    <Reference Include="Reference3" />
</ABunchOfReferences>
...
<ItemGroup>
    <ABunchOfReferences/>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    ...
</ItemGroup>

“ABunchOfReferences”将是一种全局定义的宏,包含在所有csprojs中,使用时将扩展为3“参考”元素。

提前感谢任何想法。

2 个答案:

答案 0 :(得分:1)

您可以将所有“ABunchOfReferences”放在一个单独的文件中,然后将该文件包含在ItemGroup中,如下所示:

<ItemGroup>
    <Import Project="PathToFile\yourBunchofReferenceFile" />
    <Reference Include="System" />
 ...
</ItemGroup>

答案 1 :(得分:1)

您可以在导入文件中设置引用,然后有选择地将它们包含在主文件中,

在References.props

<ItemGroup>
   <BunchOfReferences Include="Reference1" /> 
   <BunchOfReferences Include="Reference2" /> 
   <BunchOfReferences Include="Reference3" /> 
</ItemGroup>
<ItemGroup>
   <MoreReferences Include="MoreReference1" /> 
   <MoreReferences Include="MoreReference2" /> 
   <MoreReferences Include="MoreReference3" /> 
</ItemGroup>

...然后在单个项目文件中

<Import Project="PathTo\References.props" />

<ItemGroup>
   <Reference Include="System" />
   <References Include="@(BunchOfReferences)" />
   <References Include="@(MoreReferences)" />
</ItemGroup>