Cefsharp3-WinForms x64显示空白页面,但x86工作

时间:2016-11-11 17:23:00

标签: winforms chromium-embedded cefsharp

我在初始化CefSharp3时遇到问题。初始化后,控件会显示空白页。 我按照CefSharp Wiki页面(https://github.com/cefsharp/CefSharp/wiki/Quick-Starthttp://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-in-a-winforms-application)的说明进行操作 问题是,当我为x64构建应用程序时,我得到一个空白页面,但它在x86中工作正常。

我的WinForms项目中唯一的代码是:

public ChromiumWebBrowser chromeBrowser;

public void InitializeChromium()
{
   CefSettings settings = new CefSettings();
   // Initialize cef with the provided settings
   Cef.Initialize(settings);
   // Create a browser component
   chromeBrowser = new ChromiumWebBrowser("http://ourcodeworld.com");
   // Add it to the form and fill it to the form window.
   this.Controls.Add(chromeBrowser);
   chromeBrowser.Dock = DockStyle.Fill;
}

public Form1()
{
     InitializeComponent();
     // Start the browser after initialize global component
     InitializeChromium();
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
     Cef.Shutdown();
}

我还尝试添加一个面板,并使用panel1.Controls.Add(chromeBrowser)而不是this.Controls.add(chromeBrowser)在面板中初始化ChromiumBrowser,但问题仍然存在。

我在CefSharp wiki的故障排除部分找到了这个:

https://github.com/cefsharp/CefSharp/wiki/Trouble-Shooting

  

b)开发人员工具。在表单中添加一个按钮,并调用" browser.ShowDevTools()"。如果您可以看到文档已加载并且您有一个DOM,那么您的问题就是显示输出问题,而您最可能出现的问题是没有设置' Dock'正确,或一些其他设置导致浏览器呈现屏幕外/无头。如果你得到一个空白的工具窗口,或者根本没有工具窗口,那么CefSharp无法正确初始化,因此你有一个设置问题需要排除故障。

这正是我所经历的症状。

我尝试在我的笔记本电脑上创建相同的项目(带有Win7,VS2013和.NET 4.5.2的MacBook Pro),它就像一个魅力。这意味着我的工作站(win10,VS2015 .NET 4.5.3)已经出现了问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这似乎是最新版本中的错误。现在的解决方案是使用v51.0.0版本。

您可以在VS2015的NuGet包管理器中轻松完成此操作,或者如果使用VS2013,则在从包管理器命令行安装cefsharp时使用“--version 51.0.0”选项。

问题的问题在于: https://github.com/cefsharp/CefSharp/issues/1870

密切关注未来解决方案的问题。

2016年11月28日更新

这是CefSharp当前V53版本中的一个错误。它已被CefSharp团队确认,并在问题#1819(https://github.com/cefsharp/CefSharp/issues/1819

中得到解决

该错误已明显修复,但在V55之前不会发布。

现在的解决方案是,要么回到V51,要么从源代码为V55构建自己的版本。