使用特定版本的DLLS的问题

时间:2018-10-12 14:38:58

标签: wpf windows dll chromium cefsharp

我在构建WPF管理的Windows应用程序时遇到问题。此应用程序使用CEF Sharp -a托管库,该库基本上是对“ Chromium Embedded Framework”非托管库的绑定。这与通过DLL的libEGL.dll和libGLESv2.dll对angle项目的依赖有关。

我遇到的问题是,我正在使用另一个具有DLL版本的本机库。这些dll相似-但绝对不同。

我遇到的问题是确保每个依赖项都使用自己的库版本。目前,chrome和其他库从.exe所在的目录中加载gl dll。

解决此问题的最佳/最有效方法是什么?我已经阅读了一番,一些资料表明“ WinSxS”应该可以工作,而另一些资料则表明它仅适用于单独的应用程序,而不是使用不同版本的DLL的相同过程。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

基本上作为路线图:

  1. 将所有与CEF相关的文件移到单独的目录中。
  2. 从此目录加载libcef.dll(最好查阅cefsharp文档),或者在触摸CefSharp之前仅使用LoadLibraryEx。
  3. 目前,CEF应该从自己的目录中加载任何内容,但是可能需要重新检查。
  4. 加载第二个库。确保它从自己的目录加载角度。

根据结果,您将可以决定要做什么。例如,您可能需要使用补丁库来强制使用正确的路径加载角度。

ADD:您可能想使用SetDllDirectory或其他LoadLibrary东西,但首先要将CEF二进制文件移至其他目录-在这种情况下,它可以正常工作。