如何解决CefSharp的System.IO.FileNotFoundException及CS0012错误
问题修复方案
一、解决NU1701警告与CefSharp.dll缺失问题
NU1701是NuGet包兼容性警告,直接导致DLL无法正确复制到输出目录,按以下步骤处理:
- 确认项目目标框架兼容性:
CefSharp.Offscreen对.NET版本有明确要求:- .NET Framework需为4.6.2及以上;
- .NET 6/7(.NET Core)需使用v115+版本的CefSharp包。
右键项目→属性→应用,检查并调整目标框架至符合要求的版本。
- 清理并重建解决方案:
依次执行Build→Clean Solution和Build→Rebuild Solution,强制NuGet重新下载并复制依赖文件到输出目录。 - 锁定生成平台为x64:
CefSharp不支持Any CPU,右键项目→属性→生成,将平台目标设为x64,取消勾选「首选32位」;同时在解决方案配置管理器中,将项目的平台也设为x64。 - 移除冗余依赖包:
你同时安装了CefSharp.Offscreen和CefSharp.WinForms,这两个包属于不同场景(无界面/WinForms界面),保留CefSharp.Offscreen即可,卸载WinForms包避免冲突。
二、解决CS0012(HtmlString未引用)错误
该错误是因为HtmlString类型属于CefSharp.Core程序集,按以下步骤修复:
- 导入命名空间:
在使用ChromiumWebBrowser的代码文件顶部添加:using CefSharp; - 确认CefSharp.Common包版本一致:
确保CefSharp.Common的版本与CefSharp.Offscreen完全匹配,右键项目→管理NuGet程序包,检查并统一版本。 - 手动添加程序集引用(可选):
如果自动引用失效,右键项目→添加→引用→浏览,找到输出目录(/bin/x64/Debug)下的CefSharp.Core.dll添加引用。 - 配置绑定重定向(仅.NET Framework):
在app.config中添加对应版本的绑定重定向(替换版本号为你安装的CefSharp版本):<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="CefSharp.Core" publicKeyToken="40c4b6fc221f4138" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-118.6.0.0" newVersion="118.6.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="CefSharp" publicKeyToken="40c4b6fc221f4138" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-118.6.0.0" newVersion="118.6.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
内容的提问来源于stack exchange,提问作者T-Bone
相关产品推荐
相关产品推荐

