针对 Win10 和 Win8 设备的 Nuget 包

Nuget package targeting Win10 both Win8 devices

我有一个生成的 nuget 包,其中包含一个为 W8 和 WP8.1 编译的库:

.nuspec:

<references>
    <group targetFramework=".NETCore4.5">
        <reference file="mylib.winmd" />
    </group>
    <group targetFramework="portable-wpa81">
        <reference file="mylib.winmd" />
    </group>
</references>

由于我还计划针对 Win10 设备(台式机和 phone-arm),我正在考虑将这些库添加到同一个包中。 目前还不太清楚是否可以为 w8、wp8、w10-x86 和 w10-arm 生成包含这些库的包。

我正在考虑使用 nuget 3 中添加的 runtimes 功能。在这种情况下应该如何修改 nuspec 文件?是否应在 nuspec 文件中添加运行时 xml 节点?

你们中的一些人faced/solved遇到过类似的问题吗?

Nuget 3+ 规范显然缺少示例。 使用 UWP 库的 nuget 包的一个很好的例子是 Win2D.uwp. See also this discussion.

包是一个简单的存档。

基本上,winmd 文件在 uap10.0 文件夹中,dll 在 runtime/win10-x86 or runtime/win10-x64 or runtime/win10-arm.

除此之外,还需要一个描述文件:build/native/.targets

总而言之,文件结构需要类似于:

build
  native
    .targets file
lib
  uap10.0
    .winmd file
runtimes
  win10-arm
    .dll file
  win10-x86
    .dll file
  win10-x64
    .dll file
  ...

希望这能帮助其他人不要浪费宝贵的时间...