当前位置: 首页 > news >正文

全局或为单独的项目添加自定义的 NuGet 源

本文介绍如何添加自定义的 NuGet 源。包括全局所有项目生效的 NuGet 源和仅在某些特定项目中生效的 NuGet 源。


你可以前往 我收集的各种公有 NuGet 源 以发现更多的 NuGet 源,然后使用本文的方法添加到你自己的配置中。

本文内容

    • 使用命令行添加
    • 在 Visual Studio 中添加
    • 直接修改配置文件
    • 为单独的项目添加自定义的 NuGet 源

使用命令行添加

在使用命令行之前,你需要先在 https://www.nuget.org/downloads 下载最新的 nuget.exe 然后加入到环境变量中。

现在,我们使用命令行来添加一个包含各种日构建版本的 NuGet 源 MyGet:

nuget sources add -Name "MyGet" -Source "https://dotnet.myget.org/F/dotnet-core/api/v3/index.json"

如果你添加的只是一个镜像源(比如华为云 huaweicloud),那么其功能和官方源是重合的,可以禁用掉官方源:

nuget sources Disable -Name "nuget.org"
nuget sources add -Name "huaweicloud" -Source "https://mirrors.huaweicloud.com/repository/nuget/v3/index.json"

在 Visual Studio 中添加

在 Visual Studio 中打开 工具 -> 选项 -> NuGet 包管理器 -> 包源

管理包源

然后在界面上添加、删除、启用和禁用 NuGet 源。

值得注意的是:

  1. 在 Visual Studio 中是不能禁用掉官方源 nuget.org 的,无论你如何取消勾选,实际都不会生效。
    • 如果要取消,你需要用命令行或者手工编辑配置文件。
  2. 你可以添加一个本地路径作为本地 NuGet 源,而那个路径只要存在 *.nupkg 文件就够了。
    • 对于 .NET Core 项目,勾选编译后生成 NuGet 包则会在输出路径生成这样的文件,于是你可以本地调试。

直接修改配置文件

NuGet 的全局配置文件在 %AppData\NuGet\NuGet.config,例如:

C:\Users\lvyi\AppData\Roaming\NuGet\NuGet.Config

直接修改这个文件的效果跟使用命令行和 Visual Studio 的界面配置是等价的。

<configuration>
  <packageSources>
    <add key="huaweicloud" value="https://repo.huaweicloud.com/repository/nuget/v3/index.json" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Walterlv.Debug" value="C:\Users\lvyi\Debug\Walterlv.NuGet" />
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
    <add key="MyGet" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
  </packageSources>
  <disabledPackageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="true" />
    <add key="Walterlv.Debug" value="true" />
    <add key="nuget.org" value="true" />
  </disabledPackageSources>
</configuration>

为单独的项目添加自定义的 NuGet 源

NuGet.config 文件是有优先级的。nuget.exe 会先把全局配置加载进来;然后从当前目录中寻找 NuGet.config 文件,如果没找到就去上一级目录找,一直找到驱动器的根目录;找到后添加到已经加载好的全局配置中成为一个合并的配置。

所以我们只需要在项目的根目录放一个 NuGet.config 文件并填写相比于全局 NuGet.config 新增的配置即可为单独的项目添加 NuGet 配置。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!-- 下一行的 clear 如果取消了注释,那么就会清除掉全局的 NuGet 源,而注释掉可以继承全局 NuGet 源,只是额外添加。 -->
    <!-- <clear /> -->
    <add key="MyGet" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
  </packageSources>
</configuration>

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决
  • 我收集的各种公有 NuGet 源
  • 制作一个极简的 .NET 客户端应用自安装或自更新程序
  • 在 MSBuild 编译项目时阻止输出所有的警告信息
  • 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target)
  • 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task
  • 安装和运行 .NET Core 版本的 PowerShell
  • 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行
  • 如何为你的 Windows 应用程序关联一种或多种文件类型
  • 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用
  • 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework)
  • 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢?
  • 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • css布局,左右固定中间自适应实现
  • Docker入门(二) - Dockerfile
  • Git同步原始仓库到Fork仓库中
  • HTML5新特性总结
  • Java反射-动态类加载和重新加载
  • js操作时间(持续更新)
  • leetcode讲解--894. All Possible Full Binary Trees
  • Object.assign方法不能实现深复制
  • PAT A1120
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • WebSocket使用
  • Zsh 开发指南(第十四篇 文件读写)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 前端之Sass/Scss实战笔记
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 思考 CSS 架构
  • 微信小程序--------语音识别(前端自己也能玩)
  • 鱼骨图 - 如何绘制?
  • 移动端高清、多屏适配方案
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #pragma pack(1)
  • (7)STL算法之交换赋值
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (论文阅读11/100)Fast R-CNN
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)shell调试方法
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .chm格式文件如何阅读
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET/C# 使窗口永不获得焦点
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET单元测试
  • .Net的C#语言取月份数值对应的MonthName值
  • .Net语言中的StringBuilder:入门到精通
  • .net专家(高海东的专栏)