如何解决 Cefsharp 的 System.IO.FileNotFoundException

问题描述 投票:0回答:1

我正在使用 Cefsharp.Offscreen 构建一个网络抓取应用程序。我使用 Visual Studio 22 和 net framework 6 或 7。我安装了 Cefsharp.Offscreen、Cefsharp.WinForms、Cefsharp.Common、cef.redist.x64 和 cef.redist.x86 作为依赖项。

我有这个代码:

using CefSharp;
using CefSharp.WinForms;
namespace cefsharp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeChromium();
        }
        public ChromiumWebBrowser browser;
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
        private void InitializeChromium()
        {
browser = new ChromiumWebBrowser();
            browser.LoadUrl("https://google.com");
            this.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;

        }
    }
}

当我在 x64 调试模式下运行应用程序时。它在

InitializeChromium()
方法中给出错误。错误的完整描述是“System.IO.FileNotFoundException:'Could not load file or assembly 'CefSharp, Version=112.2.70.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138'。系统找不到指定的文件'

我检查了 /bin 文件夹,但没有看到“cefsharp.dll”文件和其他一些 dll。我想,是因为它。但我不知道如何添加它们。

注意:我在错误列表中有 NU1701 警告。

此外,当我尝试使用

browser = new ChromiumWebBrowser();
更改
 browser = new ChromiumWebBrowser("https://google.com");
行时,它给出了 CS0012 错误,描述为“在未引用的程序集中定义的 Htmlstring”,我尝试编辑 app.config 文件,但是无法修复。

我该如何解决这些问题?

c# nuget-package .net-assembly cefsharp chromium-embedded
1个回答
0
投票

我使用 Visual Studio 22 和 net framework 6 或 7。我安装了 Cefsharp.Offscreen、Cefsharp.WinForms、Cefsharp.Common、cef.redist.x64 和 cef.redist.x86 作为依赖项。

对于

.Net Core 3.1/.Net 5/6/7+
,您需要使用
NETCore
NuGet 包。您尝试使用的软件包仅支持
.Net 4.x
.

从 Visual Studio

 中通过 
Nuget Package Manager

安装以下其中一项
  • CefSharp.WinForms.NETCore
  • CefSharp.Wpf.NETCore
  • CefSharp.OffScreen.NETCore

另见MS .Net 5.0 或更高版本的快速入门

© www.soinside.com 2019 - 2024. All rights reserved.