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

     _____________________________________________________________________________________________________________________________________________________________________

     

     _____________________________________________________________________________________________________________________________________________________________________

  • 相关阅读:
    Memcached缓存在.Net 中的使用(memcacheddotnet)
    转载 单目摄像机标定说明
    图像的上采样 下采样
    VOC数据集 目标检测
    tensorflow用pretrained-model做retrain
    图像分类基础
    TensorRT学习总结
    Jetson Nano Developer Kit
    pytorch深度学习60分钟闪电战
    系统检测工具ROSWTF
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/14325988.html
Copyright © 2011-2022 走看看