Msbuild 将多个引用分组到一个标记元素中

Msbuild 将多个引用分组到一个标记元素中,msbuild,csproj,Msbuild,Csproj,我们正在使用一些第三方库,这些库具有一些必须从项目中引用的依赖项 因此,每个“csproj”文件都将有一组始终相同的“引用””元素 是否有一种方法可以将这组元素分组到一个标准元素中,以便在所有csproj文件中使用 例如: ... ... “ABunchOfReferences”是一种由所有CSPROJ全局定义和包含的宏,使用时将扩展为3个“参考”元素 提前感谢您的建议。您可以将所有的“参考资料”放在一个单独的文件中,然后将该文件包含在您的项目组中,如下所示: <ItemGroup&g

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

因此,每个“csproj”文件都将有一组始终相同的“引用””元素

是否有一种方法可以将这组元素分组到一个标准元素中,以便在所有csproj文件中使用

例如:


...
...
“ABunchOfReferences”是一种由所有CSPROJ全局定义和包含的宏,使用时将扩展为3个“参考”元素

提前感谢您的建议。

您可以将所有的“参考资料”放在一个单独的文件中,然后将该文件包含在您的项目组中,如下所示:

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

...

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

在参考文献中

<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>


为什么不在导入文件中定义所有共享引用。@布赖恩:谢谢你的想法,但我想在一个文件中定义多个组,以避免维护大量文件,并且每次出现一组新的依赖项时都必须创建一个新的组;但如果没有其他解决方案,这确实是一个可以接受的解决方案;如果我能很好地理解,这是布赖恩解决方案的一个例子?是的,他是对的。我忽略了这个答案和你对它的反应。若要回答您的响应,如果要有条件地添加引用,可以在引用标记中设置“Condition”属性。设置“Condition”将强制传递原始msbuild脚本中的附加信息,以便激活正确的条件,使其仅包含与其匹配的引用子集。看起来很尴尬。我担心我将不得不使用多文件解决方案。
<Import Project="PathTo\References.props" />

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