如何在 .Net Core 2.0 控制台应用程序中包含本机资产

Oli*_*old 7 c# .net-core .net-core-2.0

我想知道是否有一种受支持的方法可以将特定运行时标识符的本机库包含在 .net 核心控制台应用程序中,以便在发布应用程序后,在应用程序运行时通过 PInvoke 加载正确的本机库。

至少对于 nuget 包,似乎有一种方法,因为在发布我的引用libuv包的应用程序后,app.deps.json包含以下内容:

"Libuv/1.10.0": {
  "runtimeTargets": {
    "runtimes/linux-arm/native/libuv.so": {
      "rid": "linux-arm",
      "assetType": "native"
    },
    "runtimes/linux-arm64/native/libuv.so": {
      "rid": "linux-arm64",
      "assetType": "native"
    },
    "runtimes/linux-armel/native/libuv.so": {
      "rid": "linux-armel",
      "assetType": "native"
    },
    "runtimes/linux-x64/native/libuv.so": {
      "rid": "linux-x64",
      "assetType": "native"
    },
    "runtimes/osx/native/libuv.dylib": {
      "rid": "osx",
      "assetType": "native"
    },
    "runtimes/win-arm/native/libuv.dll": {
      "rid": "win-arm",
      "assetType": "native"
    },
    "runtimes/win-x64/native/libuv.dll": {
      "rid": "win-x64",
      "assetType": "native"
    },
    "runtimes/win-x86/native/libuv.dll": {
      "rid": "win-x86",
      "assetType": "native"
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这正是我需要的应用程序,但我不知道如何dotnet publish制作它。