首页 文章

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

提问于
浏览
9

I want to create and distribute a NuGet package that when installed only installs solution-wide to the root packages-folder, referencing the package in the .NuGet\packages.config file.

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

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

另一个Suggested SO solution指出上述情况也应该有效 .

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

NuGet package contents

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

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

  • 我首先必须选择要安装的项目 . 我曾经期望不必指定它,因为它应该是解决方案范围的 . :/

  • init.ps1 脚本确实运行并执行我希望它们执行的命令 . :)

  • 但是,在项目中创建了一个 packages 文件夹,我被迫选择完成安装 . 我原本希望在solution-root中创建 packages -folder . :(

  • 此外, packages.config 文件是在项目文件夹中创建的,而不是在 .NuGet\packages.config 中创建的,正如我在阅读我在此处找到的文档后所期望的那样 . :(

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

1 回答

相关问题