日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

终于找到了:NuGet 修改包路径

發布時間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 终于找到了:NuGet 修改包路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NuGet 是 .NET 平臺下的一個免費、開源的包管理開發工具。

修改全局包管理目錄

通過 NuGet 安裝包時,NuGet 先將包下載至一個統一的目錄,默認路徑是:C:Users用戶名.nugetpackages

下載的包多了以后,會導致 C 盤空間被大量占用。我們可以通過修改配置將其指定到自定義的目錄下。

搜索 NuGet.Config 文件,默認位置是:C:\Users\用戶名\AppData\Roaming\NuGet,在根節點下添加如下配置:

<config>

<addkey="globalPackagesFolder"value="D:\packages"/>

</config>

如果 NuGet.Config 不存在,也可以在 C:Program Files (x86)\NuGet\Config 目錄下新建一個 NuGet.Config,將該文件夾中的 Microsoft.VisualStudio.Offline.config 文件的內容復制到新建的 NuGet.Config 中,再在其中添加上述的節點。

修改項目中的包路徑

安裝包時,NuGet 會先搜索全局包管理目錄,如果需要安裝的包已經存在,則不會去 NuGet 網站下載,不存在時則會先將包下載至本地全局目錄下。

然后將全局包管理目錄下的包文件拷貝一份至當前項目下的 packages 文件夾中,并將相應 DLL 添加至項目引用。(你在全局包管理目錄下找一個包,在其中新建一個文本文件,然后在項目中通過 NuGet 安裝該包,你會發現你新建的這個文本文件也被復制到了項目的 packages 目錄下的對應包中。)

如果每個項目下都有一個 packages,會導致硬盤中有大量重復的包文件,讓人非常的不爽??梢酝ㄟ^配置,讓項目引用同一個目錄下的包文件。

例如你的項目都是在 D:\src 目錄下,你想將其中的所有項目的包文件都放在 D:\src\packages 目錄下,目錄結構如下:

D:src

|?-- Soluation A

|?-- Soluation B

|?-- Soluation C

|?-- packages

在 D:\src 目錄下新建一個 NuGet.config 文件,在其中添加如下內容:

<?xml version="1.0"encoding="utf-8"?>

<configuration>

<solution>

<!-- 默認不將 packages 提交到源代碼管理 -->

<addkey="disableSourceControlIntegration"value="true"/>

</solution>

<config>

<!-- 指定這個目錄下默認的 packages 目錄 -->

<addkey="repositorypath"value="D:\srcpackages"/>

</config>

<packageRestore>

<!-- 默認啟用 packages 還原 -->

<addkey="enabled"value="True"/>

</packageRestore>

</configuration>

這樣,在這個目錄內的項目中使用 NuGet 時,NuGet 會檢測這個配置文件并讀取里面的配置信息,如果子目錄內也有 NuGet.config 文件,那么 NuGet 會自動將子目錄內的配置與上級目錄的配置合并,存在相同的配置時,以子目錄內的配置優先。

參考文章:

https://beginor.github.io/2013/03/31/nuget-custom-package-repository-location.html

https://www.cnblogs.com/gl1573/archive/2019/11/20/11896045.html

?

?

如何移動 nuget 緩存文件夾。

因為 nuget 文件夾一般比較大,現在我的 nuget 文件夾有 10 G,默認的 nuget 文件夾是在C盤,所以需要移動他。

可以使用下面的代碼查看 nuget 全局緩存文件所在的文件夾

nuget locals all -list

可以看到下面的輸出

packages-cache: C:\Users\user\AppData\Local\NuGet\Cache? ? ? ? ? ? ? ? ? ? #NuGet 2.x cache
http-cache:? ? ? ? ? ?C:\Users\user\AppData\Local\NuGet\v3-cache? ? ? ? ? ? ? ?#NuGet 3.x+ cache
temp:? ? ? ? ? ? ? ? ? ?C:\Users\user\AppData\Local\Temp\NuGetScratch? ? ? ? ?#Temp folder
global-packages: C:\Users\user\.nuget\packages\? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#Global packages folder

這樣可以看到,所在的全局緩存文件夾是放在 C 盤,那么我提供兩個方法可以修改

方法1.修改鏈接
可以使用管理員權限運行 PowerShell 來進行文件夾鏈接,首先復制 nuget 的 package 文件夾到 另外的地方,我移動到D:\lindexi\packages,所以就可以使用下面代碼把 nuget 文件夾移動到另一個文件夾

mklink /d C:\Users\lindexi\.nuget\packages D:\lindexi\packages

在使用這個代碼之前,需要刪除 C:\Users\lindexi\.nuget\packages 請把這個字符串修改為自己的 nuget 文件夾

方法2.配置
除了上面的方法,還可以通過修改配置,修改全局文件夾

打開 %AppData%\NuGet\NuGet.Config ,在這個文件夾添加下面代碼

<configuration>
? <config>
? ? ?<add key="globalPackagesFolder" value="D:\lindexi\packages" />
? </config>
</configuration>

請把移動的nuget 文件夾修改為你自己的文件夾

<?xml version="1.0" encoding="utf-8"?>
<configuration>
? <packageSources>
? ? <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
? ? <add key="cnblog" value="https://nuget.cnblogs.com/v3/index.json" />
? </packageSources>
? <packageRestore>
? ? <add key="enabled" value="True" />
? ? <add key="automatic" value="True" />
? </packageRestore>
? <bindingRedirects>
? ? <add key="skip" value="False" />
? </bindingRedirects>
? <packageManagement>
? ? <add key="format" value="0" />
? ? <add key="disabled" value="False" />
? </packageManagement>
? <disabledPackageSources>
? ? <add key="Microsoft Visual Studio Offline Packages" value="true" />
? </disabledPackageSources>
? <config>
? ? ?<add key="globalPackagesFolder" value="D:\Users\linde\.nuget\packages" />
? </config>
</configuration>


NuGet Cache默認路徑


Mac
~/.local/share/NuGet/Cache
~/.nuget/packages
Windows
%LocalAppData%\NuGet\Cache
%UserProfile%\.nuget\packages
Linux
~/.local/share/NuGet/Cache?
~/.nuget/packages


NuGet Configuration默認路徑

Mac ~/.config/NuGet/NuGet.Config

Windows %AppData%\NuGet\NuGet.Config

Linux ~/.config/NuGet/NuGet.Config

參見:NuGet File Locations - Matt Ward

?

總結

以上是生活随笔為你收集整理的终于找到了:NuGet 修改包路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。