如果导入项目是.NET Core SDK项目,如何检入props文件

时间:2018-11-18 16:35:05

标签: .net msbuild .net-core csproj

我如何使PropertyGroup(.props文件中)以导入.props文件的项目的类型(旧/新格式)为条件? (新格式是指.NET Core SDK项目)

我在目录Directory.Build.props中有一个root\文件,该文件被隐式导入到root\下的所有项目中。 大多数项目使用新的csproj格式,有些使用旧的格式, 我想添加一个PackageReference来破坏旧格式的项目, 我想在旧格式项目中排除该属性。

我查看了Common msbuild project properties和MS文档,没有发现任何相关内容。

1 个答案:

答案 0 :(得分:2)

由于要为包装参考定义项目而不是属性,因此可以对项目组(或项目本身)使用条件,因为所有属性的评估先于所有项目。

您还可能希望将引用的条件不是基于项目“样式”(SDK与经典),而是取决于引用NuGet软件包的样式-因为您还可以在经典项目中使用PackageReference而不是软件包。配置。

<ItemGroup Condition="'$(RestoreProjectStyle)' == 'PackageReference'">
  <PackageReference Include="My.Pkg" Version="1.2.3" />
</ItemGroup>