在跨平台 .NET Core 可执行文件中,如何指定本机依赖项的路径/将它们放在哪里?

In a cross-platform .NET Core executable, how can I specify paths to native dependencies / where do I put them?

我一直在使用 p/invoke 在 .NET Core 上的跨平台 Web 应用程序中调用一些本机依赖项。这只有效,因为我已经专门安装并 ldconfiged 那些依赖项。

理想情况下,我希望能够 运行 dotnet publish --self-contained 针对适当的平台,并让该命令包含它需要的所有 so 文件,无论它们需要在哪里,没有 ldconfig。不知道可不可以。

所以我的问题是:

  1. 如果不使用ldconfig,.NET core 去哪里寻找原生依赖?它是网络应用程序重要吗?
  2. 如果 (1) 的答案不是 "nowhere," 我如何在 dotnet publish 时包含这些依赖项?

独立选项旨在创建一个可移植的发布选项。输出文件夹将包含所有必需的本机和在指定平台中 运行 所需的任何设置,无需安装。所有的 dll 依赖项都必须在 bin 文件夹中。