You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

.NET Core中NuGet可执行文件位置及restore配置相关技术咨询

1. .NET Core对应的NuGet可执行文件位于何处?

得分情况来看:

  • 如果是通过.NET Core SDK附带的NuGet工具(非单独安装的独立CLI),它一般存放在SDK的安装目录里。比如Windows系统默认路径是C:\Program Files\dotnet\sdk\[你的SDK版本号]\NuGet相关目录;Linux/macOS的话,默认路径是/usr/share/dotnet/sdk/[你的SDK版本号]/NuGet
  • 要是你单独下载安装了独立的NuGet CLI(比如官网的nuget.exe),那位置就是你自己指定的安装路径;如果已经把它加到系统PATH里,也可以用where nuget(Windows)或which nuget(Linux/macOS)命令直接查询它的位置。

2. 执行restore命令时,.NET Core会从哪些位置查找NuGet可执行文件?

其实dotnet restore默认是用.NET SDK内置的NuGet逻辑,不需要单独调用外部的nuget.exe。但如果你的配置强制使用外部NuGet CLI,查找顺序大致是:

  • 首先查找.NET SDK安装目录自带的NuGet工具;
  • 接着检查系统PATH环境变量里的所有路径,寻找nuget.exe(或Linux/macOS下的nuget可执行文件);
  • 最后会读取用户级或项目级NuGet.Config配置文件中指定的NuGet工具路径。

3. NuGet功能是存在独立的可执行文件,还是直接内置在CLI工具中?

两种形式都存在:

  • 独立可执行文件:有单独的NuGet CLI(Windows为nuget.exe,Linux/macOS为nuget),可以单独下载安装,用来执行创建NuGet包、管理源等专属操作。
  • 内置在.NET CLI中:.NET Core/5+的CLI工具已经整合了核心NuGet功能,像dotnet restoredotnet add package这类常用命令,不需要依赖外部nuget.exe就能直接运行。

4. 若系统路径中已存在NuGet可执行文件,能否配置.NET Core使用该文件?

当然可以,有两种常用配置方式:

  • 环境变量方式:设置DOTNET_NUGET_CLI_PATH环境变量,将其值设为你想要使用的nuget.exe(或Linux/macOS下的nuget可执行文件)的完整路径,这样.NET CLI相关命令会优先使用这个指定的外部工具。
  • 配置文件方式:修改用户级(比如Windows的%APPDATA%\NuGet\NuGet.Config,Linux/macOS的~/.nuget/NuGet/NuGet.Config)或项目级的NuGet.Config文件,添加以下节点:
    <configuration>
      <config>
        <add key="nugetPath" value="/path/to/your/nuget" />
      </config>
    </configuration>
    
    保存后,后续的.NET NuGet相关操作就会使用你指定的外部可执行文件。

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

火山引擎 最新活动