如何使用 nuget 运行时针对同一包中的不同 CPU 架构?

How to use nuget runtimes to target different CPU architectures in the same package?

我正在尝试为 UWP 创建一个 nuget 包,目标是单独的 CPU 架构构建(arm、x64、x86)。我正在使用 nuget 3.3.0。阅读最新的 nuget documentation,我了解到这可以使用 "runtimes" 个文件夹来实现。

这是包结构:

将包安装到 UWP 项目会添加依赖项,但不会添加对 lib 文件夹中的程序集的引用,因此我无法使用这些内容。打包或安装包时没有错误。

在互联网上搜索后,我发现了其他打包 CPU 架构特定构建的方法(最相关的方法:1, 2)。所有这些似乎都针对旧的 nuget 版本 (<3.0.0)。

"runtimes" 是用最新的 nuget 版本解决这个问题的正确方法吗?如果是,我做错了什么?

参见 https://github.com/NuGet/Home/issues/1221

总而言之,您必须将体系结构特定的二进制文件放在 runtimes 文件夹中。 此外,您需要将表面积实现放置在 ref 文件夹中。 诀窍是使用 corflags 命令为您的 ref 文件夹生成库。