NuGet 用于多个项目的解决方案
假设我有一个包含 3 个项目的解决方案:
- 核心
- UI
- 测试
我使用的一些 NuGet 包将适用于所有 3 个项目。有些仅适用于 UI 和测试,有些仅适用于测试(如 NUnit)。
使用 NuGet 进行设置的正确方法是什么?
- 当我需要参考时,我是否应该在所有三个项目上使用“添加库包参考”?
- 我应该在第一次需要包时使用“添加库包引用”,然后使用“添加引用->浏览”进行后续使用吗?
无论哪种情况,我应该有多少个packages.config 文件?
Suppose I have a solution with 3 projects:
- Core
- UI
- Tests
Some of the NuGet packages I use will apply to all 3 projects. Some will just apply to UI and Tests, and some will just apply to Tests (like NUnit).
What is the right way to set this up using NuGet?
- Should I use "Add Library Package Reference" on all three projects any time I need a reference?
- Should I use "Add Library Package Reference" the first time I need a package, and then use Add Reference->Browse for subsequent usages?
In either case, how many packages.config files should I have?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
对于任何遇到这个问题的人,现在有以下选择:
...或者:
如果您转到“已安装的包”区域,您可以跨解决方案中的每个项目“管理”单个包。
For anybody stumbling across this, now there is the following option :
... Or:
And if you go to the Installed packages area you can 'Manage' a single package across every project in the solution.
使用控制台定位多个项目,
然后使用此命令
例如,
Use the console to target multiple projects
then use this command
for example
这个甜蜜的交易对我有用:
This sweet deal works for me:
如果您想跨多个解决方案安装包,我编写了一个方便的 Powershell 脚本来执行此操作,请参阅 这里。
您甚至可以过滤
Get-Project -All
命令并定位项目列表的子集。If you want to install a package across multiple solutions I wrote a handy Powershell script for doing it, see here.
You can even filter the
Get-Project -All
command and target a sub-set of the project list.您应该对解决方案中每个项目的所有外部库使用“添加库包引用”。
每个项目最终都会有一个packages.config。
但是,您只需下载该包一次,然后在本地将其重新用于所有其他项目。
You should use the "Add Library Package Reference" for all your external library on every project in your solution.
You'll end up with a packages.config per project.
However, you'll download the package only one time and reuse them locally for all your other projects.
在程序包管理器控制台中,您可以编写以下命令:
您也可以使用该命令进行安装或更新(Update-Package)
In Package Manager Console you can write the following command:
You can use that command for install or update as well (Update-Package)