如何为非Visual Studio环境下的C#文件添加NuGet包?
解决Newtonsoft.Json在命令行编译C#文件时的引用问题
别担心,这是新手用命令行编译C#时很常见的问题——你已经用nuget install Newtonsoft.Json把包下载下来了,但编译器还不知道要去引用包里的DLL文件,所以才会报找不到命名空间的错误。下面给你两种可行的解决方案:
方案一:手动指定引用DLL编译
- 先找到nuget下载的Newtonsoft.Json包路径:一般会在当前目录下生成
Newtonsoft.Json.x.x.x文件夹(x.x.x是具体版本号),进入文件夹里的lib目录,选择和你使用的.NET版本匹配的子文件夹(比如netstandard2.0),找到里面的Newtonsoft.Json.dll。 - 用
csc命令编译你的C#文件时,加上/reference(可简写为/r)参数指定这个DLL的路径,示例命令如下:
记得把版本号和你的C#文件名替换成实际内容。csc /r:Newtonsoft.Json.13.0.3/lib/netstandard2.0/Newtonsoft.Json.dll YourJsonParser.cs
方案二:用.NET CLI创建极简项目(更推荐)
如果你不想手动折腾DLL路径,用.NET CLI会更省心,而且完全不需要完整的Visual Studio项目结构:
- 在当前目录初始化一个极简的项目(仅生成必要的配置文件,没有多余内容):
dotnet new console --name MyJsonTool --no-program--no-program参数会跳过生成默认的Program.cs,避免和你的文件冲突。 - 进入生成的项目目录:
cd MyJsonTool - 添加Newtonsoft.Json包引用:
dotnet add package Newtonsoft.Json - 把你的C#文件放到这个目录里,然后直接编译运行:
或者单独编译:dotnet run -- YourJsonParser.cs
这种方式下,.NET会自动管理所有包引用,后续添加其他NuGet包也只需要一条dotnet builddotnet add package命令,非常方便。
最后提醒一句:在你的C#文件开头,一定要加上using Newtonsoft.Json;这条引用指令,不然即使编译器找到了DLL,代码里还是会报错哦。
内容的提问来源于stack exchange,提问作者Felipe Centeno
相关产品推荐
相关产品推荐

