如何修改NuGet默认全局包文件夹的位置?

这篇具有很好参考价值的文章主要介绍了如何修改NuGet默认全局包文件夹的位置?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于一些历史原因,重装系统成为Windows用户解决疑难杂症的祖传手艺。受此影响,给硬盘分区几乎成为了一种执念,少则C、D两个盘,夸张一点的5~6个盘的也不是没有。

PS:macOS和Linux一直都不鼓励给磁盘分区,虽然不禁止但也不提倡。随着云技术和宽带的提升,越来越多的人更喜欢把自己认为比较重要的资料存储在云盘而不是本地磁盘,一是可以跨设备访问,二来也不担心突然有一天电脑损坏或者丢失。

前几天正在写代码的时候,突然收到一条IDE的提示,C盘空间不足!赶紧打开文件资源管理器看了一眼,喔嚯……C盘还剩足足1MB多的空间,没蓝屏算是给足我面子了。

接下来就是行云流水般的三板斧:

  • 退出应用程序(物理内存不足的时候会划出一部分磁盘空间作为虚拟内存,C盘根目录下的pagefile.sys就是虚拟内存生成的文件,我看了一下,20+GB,也不敢删,只能眼睁睁看着它把磁盘空间蚕食掉)
  • 清理垃圾文件
  • 重启电脑

砍完之后,可用空间提升到了9GB。但是也不够啊,鬼知道什么时候又只剩1MB了?用TreeSize分析了一下C盘的使用情况,发现.nuget文件夹的大小超过了10GB,虽然我在项目里面做了一些配置,把当前项目用到的nuget包都存放在项目目录下,而不是默认的全局文件夹目录,但是依然有很多系统程序以及LinqPad安装的包会缓存到默认目录。

Windows默认的nuget包缓存路径是C:\Users\用户名.nuget\packages。
masOS是/Users/用户账号/.nuget/packages

清理历史版本可以腾出一些空间,但是治标不治本,如果某个程序或项目依赖于清理掉的版本,则可能被重新恢复或者干脆报错无法使用。那能不能把默认目录指定到其他盘呢?

肯定能!

方法一:修改全局配置文件

NuGet会在C:\Users\用户\AppData\Roaming\NuGet\生成一个NuGet.Config文件,这是nuget的全局配置文件,如果.net项目没有单独配置,则会使用全局配置恢复、缓存和读取依赖包。

用文本编辑器打开这个文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

如果想添加其他包源,可以在packageSources里面下增加相关节点:

<!--增加一个Nexus Repository服务作为nuget源-->
<add key="MyNuget" value="https://nexus.mydomainname.com/repository/nuget-hosted/index.json" />
<!--增加一个本地磁盘的文件夹作为nuget源-->
<add key="Test Source" value="D:\.nuget\packages" />

如果要修改全局包目录,需要在NuGet.config的config节点设置globalPackagesFolder(如果没有config节点,需要手动添加一个),配置后的完整内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <config>
	<add key="globalPackagesFolder" value="D:\.nuget\packages" />
  </config>
</configuration>

下面是config支持的配置项:

  • dependencyVersion(仅限于 packages.config):包安装、还原和更新的默认 DependencyVersion 值(未直接指定 -DependencyVersion 开关时)。 NuGet 包管理器 UI 也使用此值。 值为 LowestHighestPatchHighestMinorHighest

  • globalPackagesFolder (仅使用 PackageReference 的项目):默认全局包文件夹的位置。 默认值为 %userprofile%\.nuget\packages (Windows) 或 ~/.nuget/packages (Mac/Linux)。 相对路径可在项目特定的 nuget.config 文件中使用。 此设置由 NUGET_PACKAGES 环境变量替代,该变量优先。

  • repositoryPath(仅限于 packages.config):安装 NuGet 包的位置,而非默认的 $(Solutiondir)/packages 文件夹。 相对路径可在项目特定的 nuget.config 文件中使用。

  • defaultPushSource:如果操作未找到任何其他包源,则会标识应用作默认值的包源 URL 或路径。

  • http_proxy http_proxy.user http_proxy.password no_proxy:连接到包源时要使用的代理设置;http_proxy 应为 http://<username>:<password>@<domain> 格式。 密码已加密,且不能手动添加。 对于 no_proxy,该值是绕过代理服务器的域的列表(以逗号分隔)。 可将 http_proxy 和 no_proxy 环境变量交替用于这些值。

  • maxHttpRequestsPerSource:控制从 NuGet 发送到每个包源的并行请求的最大数量,以便进行包依赖项解析和下载。 上的 dotnet.exe 默认值是从 Int32.MaxValue 属性派生的 HttpClientHandler.MaxConnectionsPerServer 。 此设置对 没有影响dotnet.exe``Mac OS,因为限制设置为 16 以避免打开文件过多错误。 在 (如 )Visual Studio上运行的 的NuGet client tools默认值在 和 1MonoWindows 64.NET Framework nuget.exe 样式项目的 Packages.config 默认值设置为 Environment.ProcessorCount。 将属性配置为 maxHttpRequestsPerSource 小于默认值的值可能会影响 NuGet 性能。

  • signatureValidationMode:指定用于验证包安装和还原的包签名的验证模式。 accept值为 、require。 默认为 accept

<config>
    <add key="dependencyVersion" value="Highest" />
    <add key="globalPackagesFolder" value="c:\packages" />
    <add key="repositoryPath" value="c:\installed_packages" />
    <add key="http_proxy" value="http://company-squid:3128@contoso.com" />
    <add key="signatureValidationMode" value="require" />
    <add key="maxHttpRequestsPerSource" value="16" />
</config>

方法二:设置环境变量

如果方法一不行,那就需要通过设置环境变量来指定全局包位置。

  1. 依次打开开始菜单--设置--系统--系统信息--高级系统设置,然后切换到“高级”选项卡,点击“环境变量”按钮打开环境变量设置窗口。
  1. 环境变量设置窗口分为用户环境变量和系统环境变量,我的目的是为了腾磁盘空间的,所以这里选择设置到系统级别的环境变量(其实都差不多)。
  1. 点击系统变量下方的新建按钮,在弹出对话框中填写变量名(NUGET_PACKAGES),通过浏览目录选择或直接在变量值输入框内输入新的全局包目录。然后点击确定按钮。
  1. 确认新建成功后,在环境变量窗口点击确定保存设置。
  2. 完成以上设置之后,新的设置会马上生效(如果不放心可以重启一下电脑),接下来可以把原先目录里面的包全部剪切到新目录里面。

点关注,不迷路。

如果您喜欢这篇文章,请不要忘记点赞、关注、转发,谢谢!如果您有任何高见,欢迎在评论区留言讨论……文章来源地址https://www.toymoban.com/news/detail-588571.html

到了这里,关于如何修改NuGet默认全局包文件夹的位置?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • VSCode修改扩展和用户文件夹目录位置(Windows)

    VSCode修改扩展和用户文件夹目录位置(Windows)

    vscode 的扩展和用户数据都是默认在C盘下的 extensions : C:Users.vscodeextensions user-data : C:UsersAppDataRoamingCode 一般来说,用户文件夹大小会比扩展目录的大小会大,就我而言,我的扩展有 1-1.5GB 的大小,而用户文件夹却占了我 5GB 容量,这对 C 盘容量严重不足的用户是非常难受的

    2023年04月08日
    浏览(13)
  • Nodejs安装及环境变量配置(修改全局安装依赖工具包和缓存文件夹及npm镜像源)

    Nodejs安装及环境变量配置(修改全局安装依赖工具包和缓存文件夹及npm镜像源)

    本机环境:win11家庭中文版 一、官网下载  二、安装              三、查看nodejs及npm版本号 1、查看node版本号 2、查看NPM版本号(安装nodejs时已自动安装npm)  四、配置npm全局下载工具包和缓存目录 1、查看安装目录  在本目录下创建node_global和node_cache目录,以后通过npm安装

    2024年02月14日
    浏览(10)
  • MAC OS 如何修改“文件”或“文件夹”的“创建时间”和“修改时间”

    MAC OS 如何修改“文件”或“文件夹”的“创建时间”和“修改时间”

        首先,在MAC OS上修改文件或者文件夹的「命名」,是不会修改文件或文件夹的“修改时间”的,对于单个文件来说,例如一个文本文件,只有它包括的内容发生了改变,该文件的“修改时间”才会发生改变。     有时候我们需要手动修改文件的“创建时间”或者“修改时

    2024年02月04日
    浏览(39)
  • 如何查看某个文件夹的git修改记录

    要查看某个文件夹在Git中的修改记录,你可以使用 git log 命令,并指定文件夹的路径。下面是具体的步骤: 打开命令行或终端。 切换到你的Git仓库的根目录。 执行以下命令,其中 path/to/folder 是你想要查看修改记录的文件夹的相对路径: 这个命令会显示该文件夹及其内部文

    2024年03月15日
    浏览(38)
  • windows如何修改user下面的文件夹名称

    windows如何修改user下面的文件夹名称

    1:win+r,输入regedit,回车,打开注册表 在上边的搜索框中输入:计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList 然后找到最长的那个目录,双击,打开之后,在表中会看到C:User你的目录名称 修改他,比如我想改为,my,就直接输入my,然后保存就好了,这个

    2024年02月14日
    浏览(38)
  • Win10、11 如何更改文件和文件夹的 上次修改日期、创建日期和上次访问日期

    Win10、11 如何更改文件和文件夹的 上次修改日期、创建日期和上次访问日期

       方法 一 :    Removing File Attributes Using Windows File Explorer   使用 Windows 文件资源管理器删除文件属性 如果你想在 Windows 10 上更改上次修改日期或其他文件属性,首先想到的可能是使用Windows 文件资源管理器中文件的“属性”菜单。   不幸的是,这是不可能的。你可

    2024年02月01日
    浏览(11)
  • windows 文件夹视图全局生效

    windows 文件夹视图全局生效

    文件资源管理器(WIN+E快捷键打开的窗格) 就这样的,然后我们就会进某个磁盘找对应的文件或文件夹下的文件,进行一定的操作   但是有注意过吗  ,这些窗格“展示列”(先这样称呼吧,官方的名称应该是: 可用的列 ,例如: ,官网地址:如何更改在 Windows 资源管理器

    2024年02月05日
    浏览(8)
  • 改变 Windows 用户文件夹默认路径 C:/Users

    Windows 默认的总用户文件夹总是会在系统盘下,如果你的系统盘为 C 盘,则为: C:Users ,许多默认文件夹也都会放在这里: 文档、桌面、下载、图片、视频等文件夹都默认在这里,这些文件夹倒是可以改变位置 AppData 文件夹默认在用户根目录下,存储了大部分软件的数据、配

    2024年02月04日
    浏览(24)
  • Svg使用和注册components文件夹内部全部为全局组件

    Vue2+Js中使用(vue只注册了Svg) 1. 安装插件 2. 封装Svg组件 3. 在assets/icons文件夹下创建index.js 4. vue.config.js 5. main.js中引入 Vue3+Ts中使用(一次性将components下的所有组件都注册了)  1.安装SVG依赖插件 2. 封装SvgIcon 3. 在src/components文件夹目录下创建一个index.ts文件:用于注册comp

    2024年02月13日
    浏览(7)
  • Lua 批量修改文件夹下文件名

    Lua 批量修改文件夹下文件名

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包