我有一个针对两个不同操作系统/框架的项目:
net461
在 Windows 和 netcoreapp2.0
在 OSX 我试图弄清楚如何为 NuGet 正确打包。根据this post我应该能够像这样打包它们:
/runtimes/win/lib/net461/myassembly.dll
/runtimes/osx/lib/netcoreapp2.0/myassembly.dll
当我将 NuGet 包添加到另一个项目时,打包的程序集不会作为对目标项目的引用添加。
然后我在某处读到您还需要将引用库添加到
/ref
文件夹,所以我尝试了这个:/runtimes/win/lib/net461/myassembly.dll
/runtimes/osx/lib/netcoreapp2.0/myassembly.dll
/ref/net461/myassembly.dll
/ref/netcoreapp2.0/myassembly.dll
在这种情况下,程序集被添加为对目标项目的引用,我可以构建它,但所需的程序集不会复制到输出文件夹。
所有这一切的文档都非常模糊,我很迷茫。
我错过了什么?
相关的 NuGet 问题:https://github.com/NuGet/Home/issues/7316
更新:我整理了一个 sample project这证明了我正在努力实现的目标。特别是请参阅自述文件的底部,标题为“NuGet Packaging”。
最佳答案
这就是我最终想通/猜到的(因为尽我所能知道其中一些没有官方文档)
把这一切放在一起,我原来的例子应该是这样的:
/lib/net461/myassembly.dll (net461/Windows Compile and Runtime)
/runtimes/osx/lib/netcoreapp2.0/myassembly.dll (netcore/OSX Runtime)
/runtimes/win/lib/netcoreapp2.0/myassembly.dll (netcore/Win Runtime)
/ref/netcoreapp2.0/myassembly.dll (netcore/* Compile Time)
关于NuGet:未添加对运行时文件夹中程序集的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52397501/