如何创建支持多平台的nuget包

Ale*_*lex 6 .net packaging multiplatform nuget nuspec

首先,我读了一些这方面的文章,例如https://learn.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks,但它们没有涵盖我的场景以及我的任何内容尝试过没有成功。

我总共有 4 个组件,配置如下:

1. .NET Framework 4.5; Platform x86
2. .NET Framework 4.5; Platform x64
3. UWP10; Platform x86
4. UWP10; Platrofm x64
Run Code Online (Sandbox Code Playgroud)

即使是 .NET Framework,我也没有 AnyCPU 平台程序集。我的所有程序集都以 x86 或 x64 为目标。到目前为止我发现的所有内容都描述了如何仅为 UWP 创建多平台包。我什至还没有尝试过,因为这个主题已经被很好地涵盖了。问题是如何为.NET Framework 4.5打包多平台包。根据包装文章,我似乎必须具有以下文件夹结构

runtimes
   win-x86
      lib
         net45
            MyAssembly.dll
   win-x64
      lib
         net45
            MyAssembly.dll
Run Code Online (Sandbox Code Playgroud)

我创建了这个结构并尝试使用该包。该软件包安装没有错误,但我无法使用 MyAssembly.dll。看起来构建没有找到它。我尝试了文件夹名称的不同变体,例如“win10-x86”,只是“x86”。什么都不起作用。

是否有可能为 .NET Framework 4.5 提供多平台包?有没有人创建成功的?请分享知识。

谢谢

jsw*_*f19 -1

自从你问这个问题以来已经有一段时间了;你有运气或找到解决方法吗?

如果您检查链接的文档,它(现在)会说

这些程序集仅在运行时可用,因此如果您还想提供相应的编译时程序集,请将AnyCPU程序集放在/ref/{tfm}文件夹中。

因此,除了运行时文件夹之外,您似乎还需要一个AnyCPU版本的库来支持构建,这似乎是您遇到问题的地方。