簡體   English   中英

從解決方案中的目錄引用NuGet軟件包

[英]Referencing NuGet packages from directory in solution

我有一個解決方案,其中包含幾個由Visual Studio 2015管理的ASP.NET Core項目。

我的NuGet軟件包當前存儲在C:\\Users\\My User\\.nuget\\packages\\ 相反,我需要在我的解決方案中有一個Packages目錄,並從那里引用軟件包。 像這樣:

  • 解決方案文件夾
    • SRC
      • 項目1
      • 項目2
      • [...]

我將包從上面的默認路徑復制到了解決方案目錄中,然后刪除了項目的所有引用。 然后,我將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存儲庫,而不是使用本地存儲庫來打包目錄。 這是指南:

創建本地Nuget存儲庫以進行離線開發

暫無
暫無

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

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