You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NuGet CLI sources命令未更新NuGet.Config,本地包无法引用问题

问题分析与解决方案

咱们一步步拆解并解决你遇到的问题:

1. 为什么本地源未出现在~/.nuget/NuGet/NuGet.Config中?

nuget sources add命令默认修改的用户级配置文件路径在不同系统/环境下存在差异:

  • 独立安装的NuGet CLI,在Linux/macOS下通常修改~/.config/NuGet/NuGet.Config,Windows下则是%APPDATA%\NuGet\NuGet.Config
  • .NET SDK自带的dotnet nuget工具,默认操作的是~/.nuget/NuGet/NuGet.Config(Linux/macOS)

你用nuget sources list能看到源,说明这个源被添加到了当前NuGet CLI对应的配置文件里,但不是你查看的那个~/.nuget/NuGet/NuGet.Config,所以.NET SDK的dotnet命令读取不到这个源。

2. 如何让本地源自动加入目标配置文件?

直接使用.NET SDK自带的dotnet nuget命令添加源,它会直接修改~/.nuget/NuGet/NuGet.Config:

dotnet nuget add source /full/path/to/the/packages --name My.Namespace

如果坚持要用独立NuGet CLI,也可以强制指定配置文件路径修改:

nuget sources add -Name My.Namespace -Source /full/path/to/the/packages -ConfigFile ~/.nuget/NuGet/NuGet.Config

添加完成后,执行dotnet nuget list source验证,就能看到你的本地源已经在列表里了。

3. 本地创建并依赖NuGet包的正确流程

按照以下步骤操作,就能彻底避免你遇到的问题:

步骤1:打包本地项目

确保你的类库项目的.csproj里配置了必要的打包字段(比如PackageId、Version),然后执行打包命令:

dotnet pack --configuration Debug

生成的.nupkg文件会在bin/Debug目录下。

步骤2:添加本地NuGet源

用dotnet nuget命令将本地目录设为源(务必用绝对路径):

dotnet nuget add source /full/path/to/the/packages --name My.Local.Source

步骤3:将包上传到本地源

你可以手动复制.nupkg到对应目录结构(就像你已经做的那样),也可以用dotnet nuget push自动生成规范的目录结构:

dotnet nuget push bin/Debug/My.Namespace.0.0.0.nupkg --source /full/path/to/the/packages

步骤4:在目标项目中添加包引用

务必指定版本号(因为本地源只有一个版本,避免NuGet默认去nuget.org查找):

dotnet add package My.Namespace --version 0.0.0

备选方案:仅在项目中使用本地源(不修改全局配置)

如果你不想把本地源添加到全局配置,可以在目标项目的根目录下创建一个NuGet.Config文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="My.Local.Source" value="/full/path/to/the/packages" />
  </packageSources>
</configuration>

这样dotnet add package命令会自动读取项目级配置,优先查找本地源。

补充:关于你遇到的错误

报错Unable to find package My.Namespace. No packages exist with this id in source(s): nuget.org的核心原因就是dotnet命令没有读取到你的本地源,所以只会去nuget.org查找,自然找不到你的本地包。按照上面的方法添加源后,这个问题就能直接解决。

内容的提问来源于stack exchange,提问作者user3310334

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:49:23