NuGet 用于多个项目的解决方案

发布于 2024-10-26 00:28:27 字数 353 浏览 3 评论 0原文

假设我有一个包含 3 个项目的解决方案:

  • 核心
  • UI
  • 测试

我使用的一些 NuGet 包将适用于所有 3 个项目。有些仅适用于 UI 和测试,有些仅适用于测试(如 NUnit)。

使用 NuGet 进行设置的正确方法是什么?

  1. 当我需要参考时,我是否应该在所有三个项目上使用“添加库包参考”?
  2. 我应该在第一次需要包时使用“添加库包引用”,然后使用“添加引用->浏览”进行后续使用吗?

无论哪种情况,我应该有多少个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?

  1. Should I use "Add Library Package Reference" on all three projects any time I need a reference?
  2. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

猫性小仙女 2024-11-02 00:28:28

对于任何遇到这个问题的人,现在有以下选择:

右键单击您的解决方案>管理解决方案的 NuGet 包...

...或者:

工具>库包管理器>管理解决方案的 NuGet 包...

如果您转到“已安装的包”区域,您可以跨解决方案中的每个项目“管理”单个包。

For anybody stumbling across this, now there is the following option :

Right-click your solution > Manage NuGet Packages for Solution...

... Or:

Tools > Library Package Manager > Manage NuGet Packages for Solution...

And if you go to the Installed packages area you can 'Manage' a single package across every project in the solution.

坐在坟头思考人生 2024-11-02 00:28:28

使用控制台定位多个项目,

Tools > Library Package Manager > Package Manager Console

然后使用此命令

Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME

例如,

Get-Project Core,UI | Install-Package FluentDateTime

Use the console to target multiple projects

Tools > Library Package Manager > Package Manager Console

then use this command

Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME

for example

Get-Project Core,UI | Install-Package FluentDateTime
烟凡古楼 2024-11-02 00:28:28

这个甜蜜的交易对我有用:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
    $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
    | ForEach-Object {Install-Package MvvmLight -project $_.Name}

This sweet deal works for me:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
    $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
    | ForEach-Object {Install-Package MvvmLight -project $_.Name}
红颜悴 2024-11-02 00:28:28

如果您想跨多个解决方案安装包,我编写了一个方便的 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.

趴在窗边数星星i 2024-11-02 00:28:28

您应该对解决方案中每个项目的所有外部库使用“添加库包引用”。
每个项目最终都会有一个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.

雨轻弹 2024-11-02 00:28:28

程序包管理器控制台中,您可以编写以下命令

Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter 
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package 
PACKAGE_NAME -Version VERSION

您也可以使用该命令进行安装或更新(Update-Package)

In Package Manager Console you can write the following command:

Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter 
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package 
PACKAGE_NAME -Version VERSION

You can use that command for install or update as well (Update-Package)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文