本文适用于: ✔️.NET 5.0.100 SDK 及更高版本
当 .NET SDK 发出警告 NETSDK1071 时,它表明将来在 PackageReference 中指定的元包版本与通过 TargetFramework 属性隐式引用的元包版本可能会发生版本冲突。
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
由于TargetFramework自动引入元包的版本,因此如果这些版本存在差异,可能会导致冲突。
若要解决此问题:
当面向 .NET Core 或 .NET Standard 时,请考虑避免在项目文件中显式引用
Microsoft.NETCore.App或NETStandard.Library。如果需要面向 .NET Core 的特定运行时版本,请使用该
<RuntimeFrameworkVersion>属性,而不是直接引用元包。 例如,如果使用 独立部署 ,并且需要 1.0.0 LTS 运行时的特定修补程序,则可能会出现这种情况。如果需要面向 .NET Standard 的特定版本
NetStandard.Library,可以使用<NetStandardImplicitPackageVersion>该属性并将其设置为所需的版本。不要显式添加或更新对 .NET Framework 项目中的
Microsoft.NETCore.App和NETSTandard.Library引用。 使用基于 .NET Standard 的NETStandard.LibraryNuGet 包时,NuGet 会自动安装所需的任何版本。请勿为
Microsoft.AspNetCore.App或Microsoft.AspNetCore.All指定版本,尤其是在使用 .NET Core 2.1+ 时,因为 .NET SDK 会自动选择相应的版本。 (注意:仅当项目也使用Microsoft.NET.Sdk.Web时,针对 .NET Core 2.1 这才有效。此问题在 .NET Core 2.2 SDK 中得到解决。)如果希望警告消失,还可以禁用它:
<PackageReference Include="Microsoft.NetCore.App" Version="2.2.8" > <AllowExplicitVersion>true</AllowExplicitVersion> </PackageReference>