Linux 本机库解析不再使用 netcoredeps

从 .NET 8 开始,Linux 应用程序不再搜索 netcoredeps 本机库的子目录。

已引入的版本

.NET 8

以前的行为

在早期版本的 .NET 中,Linux 应用程序在位于应用程序可执行文件旁边的子目录中搜索本机库 netcoredeps 。 此行为应用于所有本机库加载,包括用户定义的平台调用 (p/invokes)。

新行为

在 .NET 8 及更高版本中,Linux 应用程序不再搜索 netcoredeps 本机库的子目录。 原生库解析现在遵循标准机制,而无需依赖此子目录。

破坏性变更的类型

这是行为 变化

更改原因

最初引入了此 netcoredeps 行为来处理早期 .NET 版本中第三方库的复杂依赖项。 由于依赖项处理改进,.NET 8+ 不再需要此行为。 此外,该机制与 ELF 平台的建议做法不一致。

有关详细信息,请参阅 GitHub 问题 #114393

如果应用程序依赖于 netcoredeps 子目录来执行 p/invoke 操作或解析自定义本机库,请使用以下替代方案:

受影响的 API