我如何使PropertyGroup(.props文件中)以导入.props文件的项目的类型(旧/新格式)为条件? (新格式是指.NET Core SDK项目)
我在目录Directory.Build.props
中有一个root\
文件,该文件被隐式导入到root\
下的所有项目中。
大多数项目使用新的csproj格式,有些使用旧的格式,
我想添加一个PackageReference
来破坏旧格式的项目,
我想在旧格式项目中排除该属性。
我查看了Common msbuild project properties和MS文档,没有发现任何相关内容。
答案 0 :(得分:2)
由于要为包装参考定义项目而不是属性,因此可以对项目组(或项目本身)使用条件,因为所有属性的评估先于所有项目。
您还可能希望将引用的条件不是基于项目“样式”(SDK与经典),而是取决于引用NuGet软件包的样式-因为您还可以在经典项目中使用PackageReference
而不是软件包。配置。
<ItemGroup Condition="'$(RestoreProjectStyle)' == 'PackageReference'">
<PackageReference Include="My.Pkg" Version="1.2.3" />
</ItemGroup>