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

PowerShell中用CefSharp/Chromium打开URL?加载DLL报错求解

解决PowerShell中加载CefSharp组件的报错问题

问题背景

生产环境中部分SQL报表通过计划任务执行,流程效率偏低。编写PowerShell脚本优化时,最初使用System.Windows.Forms.WebBrowser组件,但报表服务器针对Chrome优化,存在静态资源加载异常问题。改用CefSharp组件后,运行脚本出现无法加载CefSharp.Core.Runtime.dll的错误。

错误原因与解决步骤

1. 移除错误的Add-Type加载命令

CefSharp.Core.Runtime.dll是原生非托管DLL,不能用Add-Type命令加载——Add-Type仅适用于.NET托管程序集(如CefSharp.dll、CefSharp.Core.dll这类)。直接删除脚本中加载该DLL的那行代码即可。

2. 确保CefSharp依赖文件完整

从NuGet下载的CefSharp包,需将对应架构(x64)的所有原生文件复制到脚本运行目录,或添加到系统PATH:

  • 找到CefSharp.Common.123.0.60\CefSharp\x64目录,将其中所有文件(包括libcef.dll、CefSharp.Core.Runtime.dll、各类资源文件等)复制到脚本所在文件夹;
  • 或者将该x64目录路径添加到系统PATH环境变量,让PowerShell能自动找到这些原生依赖。

3. 必须先初始化Cef环境

创建ChromiumWebBrowser实例前,必须先初始化Cef框架,否则会触发依赖加载失败。在脚本中添加初始化代码:

$settings = New-Object CefSharp.CefSettings
# 指定浏览器子进程路径,需对应实际文件位置
$settings.BrowserSubprocessPath = "C:\temp\Monitor_Produktion\packages\CefSharp.Common.123.0.60\CefSharp\x64\CefSharp.BrowserSubprocess.exe"
[CefSharp.Cef]::Initialize($settings) | Out-Null

4. 完整修正后的脚本

Add-Type -Path "C:\temp\Monitor_Produktion\packages\CefSharp.Common.123.0.60\lib\net462\CefSharp.Core.dll"
Add-Type -Path "C:\temp\Monitor_Produktion\packages\CefSharp.WinForms.123.0.60\lib\net462\CefSharp.WinForms.dll"
Add-Type -Path "C:\temp\Monitor_Produktion\packages\CefSharp.Common.123.0.60\lib\net462\CefSharp.dll"

Add-Type -AssemblyName System.Windows.Forms

# 初始化Cef环境
$settings = New-Object CefSharp.CefSettings
$settings.BrowserSubprocessPath = "C:\temp\Monitor_Produktion\packages\CefSharp.Common.123.0.60\CefSharp\x64\CefSharp.BrowserSubprocess.exe"
[CefSharp.Cef]::Initialize($settings) | Out-Null

$form = New-Object System.Windows.Forms.Form
$form.FormBorderStyle = 'None'
$form.WindowState = 'Maximized'
$form.Name = "ProduktionsMonitor"

# 直接在构造函数中传入URL,替代Load方法
$browser = New-Object CefSharp.WinForms.ChromiumWebBrowser("www.google.de")
$form.Controls.Add($browser)
$form.ShowDialog() | Out-Null

# 退出时清理Cef资源
[CefSharp.Cef]::Shutdown()

额外注意事项

  • 确保运行脚本的PowerShell是x64架构:CefSharp的x64依赖无法在32位PowerShell环境中加载;
  • 若通过计划任务执行脚本,需配置任务使用x64版本的PowerShell,并确保任务账号有足够权限访问CefSharp依赖文件目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:10:33