NETSDK1206:找到特定于版本或特定于分发版的运行时标识符

NETSDK1206 指示项目具有特定于版本或特定于分发版的运行时标识符的资产。 在 .NET 8 及更高版本中,运行时默认不再考虑特定于版本或特定于分发版的 RID,并且将使用一组已知的可移植 RID 查找特定于 RID 的资产。 该警告将列出 RID 和受影响的包。

首先,检查任何受影响的包的更新版本,以查看它们是否已移至可移植 RID。 许多包已在最新版本中移至可移植 RID。 如果不存在此类版本,建议联系包作者,请求切换包以仅使用可移植 RID。

如果知道应用程序实际上不需要指定的 RID(例如,它不打算在 RID 指定的平台上运行),可以使用 NoWarn MSBuild 属性来禁止显示警告。 例如:

<PropertyGroup>
  <NoWarn>$(NoWarn);NETSDK1206</NoWarn>
</PropertyGroup>

如果应用程序确实需要指定的 RID,并且受影响的包没有使用可移植 RID 的版本,则可以将运行时配置为通过具有特定于版本和特定于分发版的 RID 的旧 RID 图执行资产解析。 请注意,旧 RID 图不再更新,仅作为一个后向兼容性选项存在。

<ItemGroup>
  <RuntimeHostConfigurationOption Include="System.Runtime.Loader.UseRidGraph" Value="true" />
</ItemGroup>