网站建设颜色,做的最好的视频教学网站,建立本机网站,设计网站酷NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。
修改全局包管理目录
通过 NuGet 安装包时#xff0c;NuGet 先将包下载至一个统一的目录#xff0c;默认路径是#xff1a;C:Users用户名.nugetpackages
下载的包多了以后#xff0c;会导致 C 盘空间被大量占用。…NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。
修改全局包管理目录
通过 NuGet 安装包时NuGet 先将包下载至一个统一的目录默认路径是C:Users用户名.nugetpackages
下载的包多了以后会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。
搜索 NuGet.Config 文件默认位置是C:\Users\用户名\AppData\Roaming\NuGet在根节点下添加如下配置
config
addkeyglobalPackagesFoldervalueD:\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 version1.0encodingutf-8?
configuration
solution
!-- 默认不将 packages 提交到源代码管理 --
addkeydisableSourceControlIntegrationvaluetrue/
/solution
config
!-- 指定这个目录下默认的 packages 目录 --
addkeyrepositorypathvalueD:\srcpackages/
/config
packageRestore
!-- 默认启用 packages 还原 --
addkeyenabledvalueTrue/
/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 keyglobalPackagesFolder valueD:\lindexi\packages / /config /configuration 请把移动的nuget 文件夹修改为你自己的文件夹
?xml version1.0 encodingutf-8? configuration packageSources add keynuget.org valuehttps://api.nuget.org/v3/index.json protocolVersion3 / add keycnblog valuehttps://nuget.cnblogs.com/v3/index.json / /packageSources packageRestore add keyenabled valueTrue / add keyautomatic valueTrue / /packageRestore bindingRedirects add keyskip valueFalse / /bindingRedirects packageManagement add keyformat value0 / add keydisabled valueFalse / /packageManagement disabledPackageSources add keyMicrosoft Visual Studio Offline Packages valuetrue / /disabledPackageSources config add keyglobalPackagesFolder valueD:\Users\linde\.nuget\packages / /config /configuration NuGet Cache默认路径
Mac ~/.local/share/NuGet/Cache ~/.nuget/packagesWindows %LocalAppData%\NuGet\Cache %UserProfile%\.nuget\packagesLinux ~/.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