NuGet 修改包路径
NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。
修改全局包管理目录
通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nuget\packages
下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。
搜索 NuGet.Config
文件,默认位置是:C:\Users\用户名\AppData\Roaming\NuGet
,在根节点下添加如下配置:
<config>
<add key="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 提交到源代码管理 -->
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<!-- 指定这个目录下默认的 packages 目录 -->
<add key="repositorypath" value="D:\src\packages" />
</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
NuGet 修改包路径的更多相关文章
- Android+Eclipse修改包路径
在开发过程中发现之前定的包名或是路径不太合理,怎么修改呢?选中要修改的包,按F2按键,如下图: 图1 上图是我修改后的,修改前的包名是com.example.appcenter,自改为com.exam ...
- 批量修改Java类文件中引入的package包路径
http://libeey.blogbus.com/logs/101848958.html当复制其他工程中的包到新工程的目录中时,由于包路径不同,出现红叉,下面的类要一个一个修改包路径,类文件太多的话 ...
- 【转载】eclipse中批量修改Java类文件中引入的package包路径
原博客地址:http://my.oschina.net/leeoo/blog/37852 当复制其他工程中的包到新工程的目录中时,由于包路径不同,出现红叉,下面的类要一个一个修改包路径,类文件太多的话 ...
- .Net Core利用反射动态加载类库的方法(解决类库不包含Nuget依赖包的问题)
在.Net Framework时代,生成类库只需将类库项目编译好,然后拷贝到其他项目,即可引用或动态加载,相对来说,比较简单.但到了.Net Core时代,动态加载第三方类库,则稍微麻烦一些. 一.类 ...
- VS项目中使用Nuget还原包后编译生产还一直报错?
Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...
- NuGet程序包安装SQLite后完全抽离出SQLite之入门介绍及注意事项,你真的懂了吗?
前言 近几天的几篇文章讲的内容非前面内容如系列的讲解,这几天文章都是我在项目中遇到的问题以及重新学习的知识,所以和大家分享一下,关于SQLite的文章多如牛毛,但是有些大多已经过时,为什么说过时,之前 ...
- 项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx” 编译新下载的代码出错 修改包管理器的源为 http://www.nuget.org/api/v2/ .重试后成功 ...
- 3.SpringMVC修改配置文件路径和给界面传递数据
1.修改配置文件路径 达到 配置多文件的目的 web.xml文件中基础配置有springMVC配置的servlet路径 <servlet-name>SpringMVC</serv ...
- Nuget程序包 使用log4net
Nuget程序包不用细介绍,网上资源很多,有个项目使用了log4net,为项目打log,功能很多,足够一般使用. 使用时候需要在配置文件中对其进行相关配置,我自己的配置文件放在App.config文件 ...
随机推荐
- 虚拟化和Docker
1.硬件层的虚拟化具有高性能和隔离性,因为hypervisor直接在硬件上运行,有利于控制VM的OS访问硬件资源,使用这种解决方案的产品有VMware ESXI和Xen server. 2.hyper ...
- Python—执行系统命令的四种方法
一.os.system方法 这个方法是直接调用标准C的system() 函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息. os.system(cmd)的返回值.如果执行成功,那么会 ...
- 《CSAPP》实验一:位操作
<CSAPP>号称程序员圣经,虽然中文译名为<深入理解计算机系统>,但其实没那么"深",只是覆盖面很广,一般用作计算机专业大一导论课的教科书.早就听闻书上配 ...
- Django:永别了pycrypto库~
在开发微信登陆功能时,解密用户信息需要使用到 Crypto 包,所以安装了pycrypto库. Linux.OS X 系统均可直接 pip install pycrypto . 最近换到win10下开 ...
- docker网络配置
Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用--net去指定,其他三种模式需 ...
- 微信 电脑版 HOOK(WeChat PC Hook)- 远程线程注入dll原理
Windows加载dll的特性 1.Windows系统中,每个exe软件运行的时候,会加载系统模块kernel32.dll 2.所有加载进exe软件的系统模块kernel32.dll,内存地址都是一样 ...
- 微信 电脑版 HOOK(WeChat PC Hook)- 技能点
CE 扫描内存数据OD 动态分析代码IDA 静态分析代码汇编 阅读OD和IDA的代码 编写inline hookC/C++ 编写dll 编写主程序逻辑MFC 编写主程序界面 源码: https://g ...
- Oracle模糊查询CONCAT参数个数无效
在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效 <if test="empId!=null and ...
- HALCON数据类型和C#对应数据类型的对比
摘要:HALCON数据类型:Iconic Variables(图形变量).Control Variables(控制变量).在C#中,图形变量用HObject声明,控制变量用HTuple声明.(halc ...
- pandas 过滤
条件过滤 通过loc进行行过滤,也可对过滤后的行进行赋值 import pandas as pd df = pd.DataFrame({"name": ["yang&qu ...