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

2024-01-03

我想创建并分发一个 NuGet 包,安装后仅将整个解决方案安装到根目录packages-文件夹,引用中的包.NuGet\packages.config file.

我已经找到了一些有关该主题的 NuGet 包格式的信息,并且根据NuGet 常见问题解答 https://docs.nuget.org/consume/nuget-faq如果遵循以下准则,这应该是可能的:

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

解决方案级包只需在解决方案中安装一次 可用于解决方案中的所有项目。项目级 软件包必须单独安装在您想要的每个项目中 用它。对于解决方案级包,NuGet 不会更改任何内容 一个项目,而在项目级包中则如此。通常,一个 解决方案级包安装可以从以下位置调用的新命令 在包管理器控制台窗口中。

Another 建议的解决方案 https://stackoverflow.com/questions/13982158/how-to-create-a-solution-level-nuget-package指出上述内容也应该有效。

问题是,我无法让它发挥作用。我已经验证我的包没有 lib 或内容目录:

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

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

  1. 我首先必须选择要安装的项目。我原以为不必指定这一点,因为它应该是解决方案范围内的。:/
  2. The init.ps1脚本确实按照我希望的那样运行并执行命令。:)
  3. But, a packages-文件夹是在我被迫选择完成安装的项目中创建的。我本以为packages-要在解决方案根目录中创建的文件夹。:(
  4. 另外,packages.config文件是在项目文件夹中创建的,而不是在.NuGet\packages.config,正如我在阅读我找到的相关文档后所期望的那样。:(

关于如何让它发挥作用有什么建议吗?这是 VS 2015 的限制还是 NuGet 3 的更改(因为我相信它包含在 VS2015 中)?


NuGet 团队已弃用的解决方案级别包 https://github.com/NuGet/Home/issues/522在 NuGet 3.0 中。

有一个讨论 https://github.com/NuGet/Home/issues/1521关于以与 Visual Studio 2013 兼容的方式将它们带回 NuGet 的未来版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建纯解决方案级 NuGet 包 的相关文章

随机推荐