关于NuGet还原命令执行位置及projects.json包还原的问询
包还原命令的执行位置与project.json包安装指南
我来帮你理清这些问题,刚好我对这类旧.NET Core项目的包管理比较熟悉:
一、各种包还原命令的执行位置
不同工具的执行场景和路径要求略有区别,分情况说:
- Visual Studio 操作:不用纠结路径,直接打开你的项目/解决方案就行。VS默认会自动尝试还原缺失的包,如果没自动触发,右键点击解决方案,选择「还原NuGet包」就能搞定,它会自动识别项目的路径。
nuget restore命令:- 可以在系统终端/命令提示符里用:先cd到你的解决方案根文件夹(就是放.sln文件的那个文件夹),然后直接输
nuget restore;也可以直接指定项目/解决方案的绝对路径,比如nuget restore D:\MyProjects\MyApp.sln。 - 也能在Visual Studio的包管理器控制台里用:打开「工具→NuGet包管理器→包管理器控制台」,这里默认路径就是当前打开的解决方案路径,直接敲命令就行。
- 可以在系统终端/命令提示符里用:先cd到你的解决方案根文件夹(就是放.sln文件的那个文件夹),然后直接输
dotnet restore命令:- 终端里用的话,要cd到你的项目文件夹(就是包含project.json的那个文件夹),然后执行
dotnet restore;同样可以指定路径,比如dotnet restore D:\MyProjects\MyApp\src\MyProject。 - 包管理器控制台里也能执行这个命令,不过要注意你的环境装了对应版本的.NET Core SDK(毕竟project.json是1.x时代的配置)。
- 终端里用的话,要cd到你的项目文件夹(就是包含project.json的那个文件夹),然后执行
- Mono 上的
xbuild:在Mono的终端里,切换到解决方案或项目所在文件夹,执行xbuild /t:Restore就会自动处理包还原了。
二、通过project.json安装包的方法
你的项目用的是旧版.NET Core的project.json配置,安装包主要有两种方式:
- 手动编辑project.json:
打开你的project.json文件,找到dependencies节点,按照"包名": "版本号"的格式添加需要的包,比如:
保存文件后,要么执行"dependencies": { "Microsoft.AspNetCore.Http": "1.1.2", "Newtonsoft.Json": "10.0.3" }dotnet restore/nuget restore,要么在VS里触发还原,包就会自动下载安装到项目里。 - 用命令行工具安装:
- 用NuGet CLI:在终端cd到项目文件夹,执行
nuget install 包名 -Version 版本号,比如nuget install Newtonsoft.Json -Version 10.0.3,执行后project.json的dependencies会自动更新,包也会被下载。 - 用dotnet CLI(如果你的SDK支持的话):同样在项目文件夹下执行
dotnet add package 包名 --version 版本号,比如dotnet add package Microsoft.AspNetCore.Http --version 1.1.2,这个命令会直接修改project.json并触发还原。
- 用NuGet CLI:在终端cd到项目文件夹,执行
另外提一句:如果克隆的项目没有NuGet.Config文件,NuGet会默认用官方包源,一般没问题;如果项目需要私有包源,你可以自己在项目根目录创建这个文件并配置源信息。
内容的提问来源于stack exchange,提问作者serge




