如何创建纯解决方案级NuGet包

Spi*_*lis 9 projects-and-solutions visual-studio nuget visual-studio-2015

我想创建和分发一个NuGet包,当安装时只安装解决方案范围的root packages-folder,引用.NuGet\packages.config文件中的包.

我已经找到了关于这个主题的NuGet包格式的一些信息,根据NuGet FAQ,如果遵循这些指导原则,这应该是可能的:

项目级包和解决方案级包之间有什么区别?

解决方案级别的软件包只能在解决方案中安装一次,以便解决方案中的所有项目都可用.必须在要使用它的每个项目中单独安装项目级包.对于解决方案级别的包,NuGet不会更改项目中的任何内容,而在项目级别的包中则会更改.通常,解决方案级别的软件包会安装可在"软件包管理器控制台"窗口中调用的新命令.

另一个建议的SO解决方案表明上述应该也有效.

事情是,我无法让它工作.我已经验证我的包没有lib或内容目录:

NuGet包内容

我已将所有文件分发tools到包中的-folder中,包括在安装时运行的init.ps1`脚本.

我正在使用Visual Studio 2015,当我想安装包时:

  1. 我首先必须选择要安装的项目.我曾经期望不必指定它,因为它应该是解决方案范围的.:/
  2. init.ps1脚本确实运行并执行我希望它们执行的命令.:)
  3. 但是,packages在项目中创建了一个文件夹,我被迫选择完成安装.我packages原本希望在解决方案根目录中创建-folder.:(
  4. 此外,packages.config文件是在项目文件夹中创建的,而不是在.NuGet\packages.config我阅读我在此发现的文档后所期望的.:(

有关如何使这项工作的任何建议?这是VS 2015限制还是NuGet 3的变化(我认为它包含在VS2015中)?

Mat*_*ard 9

NuGet团队弃用了NuGet 3.0中的解决方案级别包.

有一个讨论是以一种与Visual Studio 2013兼容的方式将它们重新用于未来版本的NuGet.