PowerShell脚本在VS Code外运行报错:无法加载Newtonsoft.Json程序集
解决PowerShell脚本外部运行时Newtonsoft.Json加载失败的问题
问题原因
VS Code集成终端运行脚本时,可能继承了包含Newtonsoft.Json程序集的环境(比如VS Code扩展自带的依赖路径、或该终端曾手动加载过程序集),但外部独立PowerShell进程没有对应的环境配置,导致无法找到该程序集。
解决方法
1. 手动指定程序集路径加载
在脚本开头添加明确的程序集加载逻辑,替换为你实际的Newtonsoft.Json.dll路径:
$jsonDllPath = "C:\实际路径\Newtonsoft.Json.dll" Add-Type -Path $jsonDllPath
如果不知道dll位置,可在VS Code的集成终端中运行以下命令获取路径:
[System.Reflection.Assembly]::LoadWithPartialName("Newtonsoft.Json").Location
2. 通过NuGet管理依赖(适合需要分发的脚本)
- 打开PowerShell执行以下命令,将Newtonsoft.Json安装到本地依赖目录:
Install-Package Newtonsoft.Json -DestinationPath ".\Dependencies" -Force
- 脚本中加载该目录下的程序集(替换
x.x.x为实际安装的版本号):
$jsonDllPath = Join-Path $PSScriptRoot "Dependencies\Newtonsoft.Json.x.x.x\lib\netstandard2.0\Newtonsoft.Json.dll" Add-Type -Path $jsonDllPath
3. 对齐PowerShell环境配置
- 对比VS Code集成终端和外部PowerShell的版本,执行
$PSVersionTable.PSVersion查看,确保版本一致避免兼容性问题。 - 检查环境变量
$env:PSModulePath,将VS Code终端中存在但外部环境缺失的程序集目录,添加到外部PowerShell的环境变量中。
内容的提问来源于stack exchange,提问作者Samir
相关产品推荐
相关产品推荐

