【问题标题】:WebKit.NET with C# Project Runtime Exception带有 C# 项目运行时异常的 WebKit.NET
【发布时间】:2014-10-30 00:10:52
【问题描述】:

我已经下载了 WebKit.NET 0.5-bin-cairo 以使用现有的 C# 项目。我已经包含了 WebKitBrowser.dllWebKit.Interop.dll 作为对需要它的模块的引用,以及直接在 debug/bin 文件夹中播放它们直接by this tutorial

在我运行项目并在设计器类的InitializeComponent() 的这一行上得到异常之前,我没有收到任何错误。

this.webKitBrowser1 = new WebKit.WebKitBrowser();

例外:

An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in WebKitBrowser.dll

Additional information: Failed to initialize activation context

我将所有模块构建为 86x 调试,而我的计算机是 64 位的。

感谢任何建议,因为我已经玩了好几天了。

【问题讨论】:

    标签: c# .net visual-studio-2010 webkit x86


    【解决方案1】:

    我也遇到过同样的问题。我的场景中缺少三件事。

    1. 清单文件:必须放置,因为所有 dll 都是动态链接的
    2. VC++ 必须安装在机器上:在我的例子中,我使用的是 vc++2005 redistributable sp1。
    3. 不仅 dlls/pdb/manifest 还需要将所有文件夹复制到可执行文件的根目录

    目前还没有适用于 webkit.NET 的所有文件/文件夹的正确打包方式 对于所有引用 webkit dll 的项目,显然项目架构应该是 x86

    【讨论】:

    • 谢谢,我今天晚些时候一定会试试这个。
    【解决方案2】:

    您是否尝试过: WebKit.Net and OpenWebKitSharp Error: Failed to initialize activation context ?即将Core中的所有文件(不仅仅是dll)复制到您的项目/bin/release/或/bin/debug/文件夹中?

    引用自您遵循的教程: 在我们可以运行应用程序之前,WebKit.dll 及其依赖项必须存在于输出目录中。在 Windows 资源管理器(或其他)中,将 WebKit .NET 'bin' 目录中的所有文件复制到项目的输出目录中。例如,这里是我复制后的输出目录列表:

    D:\webkitdotnet\WebKitTest\WebKitTest\bin\Debug>ls   
    CFLite.dll                      icudt40.dll          
    JavaScriptCore.dll              icuin40.dll          
    JavaScriptCore.resources        icuuc40.dll          
    SQLite3.dll                     libcurl.dll          
    WebKit.Interop.dll              libcurl.dll.manifest 
    WebKit.dll                      libeay32.dll         
    WebKit.resources                libeay32.dll.manifest
    WebKitBrowser.dll               libpng13.dll         
    WebKitBrowser.dll.manifest      libxml2.dll          
    WebKitBrowser.pdb               libxslt.dll          
    WebKitTest.exe                  pthreadVC2.dll       
    WebKitTest.pdb                  ssleay32.dll         
    WebKitTest.vshost.exe           ssleay32.dll.manifest
    WebKitTest.vshost.exe.manifest  zlib1.dll            
    curl.exe.manifest
    

    您提到您只复制了 WebKitBrowser.dll 和 WebKit.Interop.dll

    【讨论】:

    • 是的,我应该提到我刚刚将整个文件夹复制到用于调试 64x 和 84x 的 bin 中
    • 成功了吗?我的理解是,不幸的是,WebKit 动态链接到所有这些 DLL
    • 这是我一直在做的事情,我按照教程并不幸地重复了很多次。
    猜你喜欢
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2017-11-14
    • 2016-06-02
    • 2012-04-13
    相关资源
    最近更新 更多