![](/img/trans.png)
[英]Visual Studio Solution Explorer Keeps showing nuget packages I am no longer referencing
[英]Referencing NuGet packages from directory in solution
我有一個解決方案,其中包含幾個由Visual Studio 2015管理的ASP.NET Core項目。
我的NuGet軟件包當前存儲在C:\\Users\\My User\\.nuget\\packages\\
。 相反,我需要在我的解決方案中有一個Packages目錄,並從那里引用軟件包。 像這樣:
我將包從上面的默認路徑復制到了解決方案目錄中,然后刪除了項目的所有引用。 然后,我將Packages目錄添加為NuGet軟件包源。 最后,我單擊“管理NuGet程序包”並將其添加到特定項目中,確保選擇了我的自定義程序包源。
這似乎可行,但是當我檢查引用包的路徑時,它仍然是默認的C:\\Users\\[...]\\packages\\
路徑。
我想念什么? 如何從解決方案目錄引用軟件包?
我嘗試打開.xproj文件並手動設置路徑,就像以前在.csproj文件中所做的那樣,但是似乎在.xproj文件中是不可能的。 或者我只是不知道該怎么做。
我將包從上面的默認路徑復制到了解決方案目錄中……它仍然是默認的C:\\ Users [...] \\ packages \\路徑
您可以混合使用“ repositoryPath
”和“ Packages source
”的概念。
盡管您刪除了所有引用,將我的Packages目錄添加為NuGet軟件包源,從自定義軟件包源安裝了引用,但是您僅更改了Packages源。 從自定義軟件包源安裝軟件包后,NuGet將從自定義軟件包源下載軟件包,並將這些下載軟件包設置為默認的repositoryPath
,然后將這些軟件包從默認的repositoryPath
安裝到您的項目中 。 因此它仍然在默認路徑中。
如果要更改.net核心項目的軟件包默認位置,則可以設置“ NUGET_PACKAGES”環境變量。 只需設置“ NUGET_PACKAGES” =“ c:\\ teampackages”。 或者,您可以在解決方案旁邊放置一個NuGet.Config文件,其中包含以下內容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
有關詳細信息,您可以在GitHub上參考相同的問題 。
但是 ,我想說的是您可能對結果不滿意。 因為.Net Core項目依賴許多NuGet軟件包。 幾乎徘徊在1GB左右。 我認為您不想為每種解決方案設置所有這些軟件包。 此外,通過此更改,您需要為每個解決方案在VS中設置其他源。 .net核心項目非常不便。 這就是NuGet團隊為.net核心項目設置特殊設置的原因。
您可以在src目錄中創建一個Nuget.config並設置repositoryPath
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="..\packages" />
</config>
</configuration>
您可以創建用於脫機開發的本地nuget存儲庫,而不是使用本地存儲庫來打包目錄。 這是指南:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.