簡體   English   中英

如何將 NuGet 包安裝到解決方案的第二個項目中?

[英]How do I install a NuGet package into the second project in a solution?

我目前正在研究最初包含一個項目 ( My.First.Project.Name ) 的解決方案。 我通過執行以下命令安裝了 Castle Windsor:

Install-Package Castle.Windsor

我剛剛在解決方案中添加了另一個項目( My.Second.Project.Name ),並且還想將 Castle Windsor 安裝到這個項目中,但是當我再次運行Install-Package Castle.Windsor時,出現錯誤:

'Castle.Core 2.5.2' 已經安裝
'Castle.Windsor 2.5.2' 已經安裝
My.First.Project.Name 已經引用了“Castle.Core 2.5.2”
My.First.Project.Name 已經引用了“Castle.Windsor 2.5.2”

所以我的問題是:如何說服 NuGet 包管理器將包安裝到第二個項目中

有 3 種方法:)。
在 NuGet 1.1(最新版本)中,我們改進了 powershell 流水線,因此您可以執行以下操作:

Get-Project -All | Install-Package SomePackage

這會將“SomePackage”安裝到您的所有項目中。 您可以使用通配符來縮小項目范圍:

Get-Project Mvc* | Install-Package SomePackage

這將使用通配符語義(在本例中,查找所有以 mvc 開頭的項目)。

Get-Project SomeProject | Install-Package SomePackage

這會將 SomePackage 安裝到 SomeProject 中,而不是其他任何東西。

有兩種辦法。

正如您已經了解到的,包管理器控制台有一個下拉列表,其中列出了您的解決方案中的項目。

另一種方法是使用 -Project 標志。 好消息是它為您提供了帶有項目名稱的智能感知! 例如:

Install-Package SomePackage -Project MvcApplication2

答案是,令人尷尬地,盲目地簡單。

“包管理器控制台”在其工具欄中有一個名為“默認項目”的下拉菜單,將那里的項目更改為My.Second.Project.Name然后允許Install-Package Castle.Windsor將包安裝到第二個項目中。

在 Visual Studio 2015(從 Nuget v3.1.2 開始)中,語法現在是:

Install-Package ThePackage -ProjectName YourProjectName

注意:-項目名稱與-項目

在 Visual Studio 中,您可以轉到Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution 從那里,選擇要在項目之間共享的 Nuget 包,然后單擊Manage 這將允許您將特定安裝的 NuGet 包添加到您想要的任何其他項目。

如果您只需要將包從現有項目復制到新項目,只需將 packages.config 文件復制和/或修改到新項目並運行Update-Package -reinstall -Project YourProjectName

還可以選擇強制重新安裝。 對於某些問題,這對我有幫助。

Update-Package Microsoft.Owin -Reinstall

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM