zoukankan      html  css  js  c++  java
  • NuGet 修改默认包路径

     

    修改Nuget包默认存放路径,避免增加C盘的负担

     

     

     

    一、找到默认位置
    打开文件C:Program Files (x86)NuGetConfigMicrosoft.VisualStudio.Offline.config。打开这个xml,里面存放了默认路径:

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="Microsoft Visual Studio Offline Packages" value="C:Program Files (x86)Microsoft SDKsNuGetPackages"/>
      </packageSources>
    </configuration>
    复制代码

    二、修改默认位置
    修改如上的xml,增加config节点,如下:

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="Microsoft Visual Studio Offline Packages" value="C:Program Files (x86)Microsoft SDKsNuGetPackages"/>
      </packageSources>
      <config> 
        <add key="globalPackagesFolder" value="D:NugetPackage" />
      </config>
    </configuration>
    复制代码


    重启VS后生效

    备注:vs2019nuget地址:https://api.nuget.org/v3/index.json

     

    NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。

    修改全局包管理目录

    通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:Users用户名.nugetpackages

    下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。

    搜索 NuGet.Config 文件,默认位置是:C:Users用户名AppDataRoamingNuGet,在根节点下添加如下配置:

    <config>
      <add key="globalPackagesFolder" value="D:packages" />
    </config>
    

    如果 NuGet.Config 不存在,也可以在 C:Program Files (x86)NuGetConfig 目录下新建一个 NuGet.Config,将该文件夹中的 Microsoft.VisualStudio.Offline.config 文件的内容复制到新建的 NuGet.Config 中,再在其中添加上述的节点。

    修改项目中的包路径

    安装包时,NuGet 会先搜索全局包管理目录,如果需要安装的包已经存在,则不会去 NuGet 网站下载,不存在时则会先将包下载至本地全局目录下。

    然后将全局包管理目录下的包文件拷贝一份至当前项目下的 packages 文件夹中,并将相应 DLL 添加至项目引用。(你在全局包管理目录下找一个包,在其中新建一个文本文件,然后在项目中通过 NuGet 安装该包,你会发现你新建的这个文本文件也被复制到了项目的 packages 目录下的对应包中。)

    如果每个项目下都有一个 packages,会导致硬盘中有大量重复的包文件,让人非常的不爽。可以通过配置,让项目引用同一个目录下的包文件。

    例如你的项目都是在 D:src 目录下,你想将其中的所有项目的包文件都放在 D:srcpackages 目录下,目录结构如下:

    D:src
     |-- Soluation A
     |-- Soluation B
     |-- Soluation C
     |-- packages
    

    在 D:src 目录下新建一个 NuGet.config 文件,在其中添加如下内容:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <solution>
        <!-- 默认不将 packages 提交到源代码管理 -->
        <add key="disableSourceControlIntegration" value="true" />
      </solution>
      <config>
        <!-- 指定这个目录下默认的 packages 目录 -->
        <add key="repositorypath" value="D:srcpackages" />
      </config>
      <packageRestore>
        <!-- 默认启用 packages 还原 -->
        <add key="enabled" value="True" />
      </packageRestore>
    </configuration>
    

    这样,在这个目录内的项目中使用 NuGet 时,NuGet 会检测这个配置文件并读取里面的配置信息,如果子目录内也有 NuGet.config 文件,那么 NuGet 会自动将子目录内的配置与上级目录的配置合并,存在相同的配置时,以子目录内的配置优先。

    参考文章:

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

     _____________________________________________________________________________________________________________________________________________________________________

     

     _____________________________________________________________________________________________________________________________________________________________________

  • 相关阅读:
    POJ 1611 The Suspects
    POJ 2001 Shortest Prefixes(字典树)
    HDU 1251 统计难题(字典树 裸题 链表做法)
    G++ C++之区别
    PAT 乙级 1013. 数素数 (20)
    PAT 乙级 1012. 数字分类 (20)
    PAT 乙级 1009. 说反话 (20)
    PAT 乙级 1008. 数组元素循环右移问题 (20)
    HDU 6063 17多校3 RXD and math(暴力打表题)
    HDU 6066 17多校3 RXD's date(超水题)
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/14325988.html
Copyright © 2011-2022 走看看