使用 CEFSharp Web 浏览器的 WPF 应用程序在 clickonce 版本中崩溃

Posted

技术标签:

【中文标题】使用 CEFSharp Web 浏览器的 WPF 应用程序在 clickonce 版本中崩溃【英文标题】:WPF application using CEFSharp Web Browser crashing in clickonce release 【发布时间】:2016-03-04 02:40:11 【问题描述】:

我有一个简单的 WPF 应用程序,它在调试时运行良好,但是当我单击一次时,尝试加载 CEFSharp 网络浏览器时它会崩溃

我有一个登录页面,用户点击后点击打开浏览器,我收到以下错误

未处理的类型异常 'System.Windows.Markup.XamlParseException' 发生在 PresentationFramework.dll

附加信息:对类型的构造函数的调用 'MyProject.Views.CefSharpWebBrowserUserControl' 匹配 指定的绑定约束引发了异常。

> <TabItem Header="Web Page" Name="CefWebPage">
>                 <Grid Background="#FFE5E5E5" Margin="0">
>                     <Grid.ColumnDefinitions>
>                         <ColumnDefinition Width="871*"/>
>                     </Grid.ColumnDefinitions>
>                     <views:CefSharpWebBrowserUserControl x:Name="CefSharpWebBrowserUserControl"></views:CefSharpWebBrowserUserControl>
>                 </Grid>
>             </TabItem>

异常:无法创建“CefSharpWebBrowserUserControl”的实例。

TargetInvocationException: 异常已被目标抛出 调用。

FileNotFoundException: 无法加载文件或程序集 'CefSharp.Core, 版本=45.0.0.0,文化=中性,PublicKeyToken=40c4b6fc221f4138' 或 它的依赖项之一。系统找不到指定的文件。

后面的代码

    public partial class CefSharpWebBrowserUserControl : UserControl
    
        public CefSharpWebBrowserUserControl()
        
            InitializeComponent();
            var settings = new CefSettings();
            settings.PackLoadingDisabled = true;
            WebBrowser = new ChromiumWebBrowser();
            WebBrowser.Address = "www.google.com";
            BrowserGrid.Children.Add(WebBrowser);
        

        public ChromiumWebBrowser WebBrowser  get; set; 
    

【问题讨论】:

【参考方案1】:

您介意尝试在 WebBrowser.Address 中添加 https:// 吗?

所以来自:

WebBrowser.Address = "www.google.com";

拥有:

WebBrowser.Address = "https://www.google.com";

这个post 也可能对您有所帮助。

【讨论】:

那最好作为评论,另外,这不是他描述的问题。从他的问题来看,该项目似乎在 Visual Studio 中运行良好,但通过单击一次安装时崩溃。【参考方案2】:

ClickOnce 默认不包含CefSharp 所需的unamanged 资源。有很多问题已经解决了这个主题。

这里有几个有用的

https://github.com/cefsharp/CefSharp/issues/1314 Deploying WPF Application with 3rd Party DLLs

搜索GitHub 项目始终是一个极好的资源。 https://github.com/cefsharp/CefSharp/search?q=clickonce&type=Issues&utf8=%E2%9C%93

您还需要确保在您的目标计算机上安装了VC++ Redist。请参阅https://github.com/cefsharp/CefSharp#version-branches 了解更多信息,您需要哪个VC++ 版本。

一般来说,请在发布您的问题之前尝试搜索GitHub/***

【讨论】:

以上是关于使用 CEFSharp Web 浏览器的 WPF 应用程序在 clickonce 版本中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

CefSharp WPF Web 浏览器不显示或渲染

在WPF中使用CefSharp嵌入浏览器

wpf 用cefsharp替代web控件

wpf中js调用C#后台方法,使用框架CefSharp

Cefsharp 清除 wpf 中的缓存、cookie 和浏览器数据

cefsharp wpf怎么用