NETSDK1206指示项目具有特定于版本或分发的运行时标识符的资产。 在 .NET 8 及更高版本中,运行时默认不再考虑特定于版本的或特定于发行版的 RID,并且会 使用一组已知的可移植 RID 查找特定于 RID 的资产。 该警告将列出受影响的 RID 和包。
首先,检查受影响包的更新版本,查看它们是否已迁移至可移植的 RID。 许多包已在最新版本中迁移到可移植的 RID。 如果不存在此类版本,我们建议联系包作者,请求切换包以仅使用可移植的 RID。
如果知道应用程序实际上不需要指定的 RID(例如,它不打算在 RID 指定的平台上运行),则可以切换到使用更常规的 RID。 例如,在项目文件中将<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
更改为<RuntimeIdentifier>win-x64</RuntimeIdentifier>
:
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
如果将 RID 指定为命令行参数,请进行类似的更改。 例如,而不是 dotnet publish --framework net8.0 --runtime win10-x64
使用命令 dotnet publish --framework net8.0 --runtime win-x64
。
如果需要还原到使用旧的完整 RID 图的以前行为,可以在项目文件中将 MSBuild 属性设置为UseRidGraph
true
。 但是,将来不会更新旧的 RID 图以尝试处理任何其他发行版或体系结构。
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>