如何创建纯解决方案级 NuGet 包
How do I create a pure solution-level NuGet package
我想创建和分发一个 NuGet 包,该包在安装时仅将整个解决方案安装到根 packages
文件夹,引用 .NuGet\packages.config
文件中的包。
我已经找到了一些关于此主题的 NuGet 包格式的信息,并且根据 NuGet FAQ 如果遵循以下准则,这应该是可能的:
What is the difference between a project-level package and a solution-level package?
A solution-level package has to be installed only once in a solution
to be available for all projects in the solution. A project-level
package must be installed separately in each project where you want to
use it. For solution-level packages, NuGet doesn't change anything in
a project, whereas in a project-level package it does. Typically, a
solution-level package installs new commands that can be called from
within the Package Manager Console window.
另一个 Suggested SO solution 指出上述方法也应该有效。
问题是,我无法让它工作。我已验证我的包没有 lib 或内容目录:
我已将所有要分发的文件放入包中的 tools
文件夹中,包括 init.ps1` 脚本顶部 运行 安装时。
我正在使用 Visual Studio 2015,当我想安装软件包时:
- 我首先要select一个项目来安装。我原以为不必指定它,因为它应该是解决方案范围的。
:/
init.ps1
脚本执行 运行 并执行我希望它们执行的命令。 :)
- 但是,在我被迫选择完成安装的项目中创建了一个
packages
文件夹。我本来希望在解决方案根目录中创建 packages
文件夹。 :(
- 此外,
packages.config
文件是在项目文件夹中创建的,而不是在 .NuGet\packages.config
中创建的,正如我在阅读我找到的文档后所期望的那样。 :(
关于如何让它工作有什么建议吗?这是 VS 2015 限制还是 NuGet 3 更改(我相信它包含在 VS2015 中)?
NuGet 团队 deprecated solution level packages 在 NuGet 3.0 中。
有一个 discussion 关于以与 Visual Studio 2013 兼容的方式将它们带回 NuGet 的未来版本。
我想创建和分发一个 NuGet 包,该包在安装时仅将整个解决方案安装到根 packages
文件夹,引用 .NuGet\packages.config
文件中的包。
我已经找到了一些关于此主题的 NuGet 包格式的信息,并且根据 NuGet FAQ 如果遵循以下准则,这应该是可能的:
What is the difference between a project-level package and a solution-level package?
A solution-level package has to be installed only once in a solution to be available for all projects in the solution. A project-level package must be installed separately in each project where you want to use it. For solution-level packages, NuGet doesn't change anything in a project, whereas in a project-level package it does. Typically, a solution-level package installs new commands that can be called from within the Package Manager Console window.
另一个 Suggested SO solution 指出上述方法也应该有效。
问题是,我无法让它工作。我已验证我的包没有 lib 或内容目录:
我已将所有要分发的文件放入包中的 tools
文件夹中,包括 init.ps1` 脚本顶部 运行 安装时。
我正在使用 Visual Studio 2015,当我想安装软件包时:
- 我首先要select一个项目来安装。我原以为不必指定它,因为它应该是解决方案范围的。
:/
init.ps1
脚本执行 运行 并执行我希望它们执行的命令。:)
- 但是,在我被迫选择完成安装的项目中创建了一个
packages
文件夹。我本来希望在解决方案根目录中创建packages
文件夹。:(
- 此外,
packages.config
文件是在项目文件夹中创建的,而不是在.NuGet\packages.config
中创建的,正如我在阅读我找到的文档后所期望的那样。:(
关于如何让它工作有什么建议吗?这是 VS 2015 限制还是 NuGet 3 更改(我相信它包含在 VS2015 中)?
NuGet 团队 deprecated solution level packages 在 NuGet 3.0 中。
有一个 discussion 关于以与 Visual Studio 2013 兼容的方式将它们带回 NuGet 的未来版本。