pacificIT / chromiumembedded

Automatically exported from code.google.com/p/chromiumembedded
0 stars 1 forks source link

Unable to deploy cef dlls on system path #573

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Windows 7, .Net 3.5.1

I'm trying to set up a deployment of chromium embedded so that the dlls reside 
in a location other than the bin directory of my app. This is necessary to 
support componentized updates of our app without adding 40 mb of overhead to 
the main software package. I've attempted to set up my PATH variable to point 
to a 'chromium_dll' directory where I've placed all of the necessary native 
dlls. The example app does not seem able to find the dlls when deployed in this 
fashion.

I see that Issue 416  seems to indicate that this behavior has been hard coded. 
http://code.google.com/p/chromiumembedded/issues/detail?id=416

Is this something that can be modified or worked around?

Original issue reported on code.google.com by chad.ja...@gmail.com on 20 Apr 2012 at 1:53

GoogleCodeExporter commented 9 years ago
What version of CEF are you using?

With recent versions all resources and DLLs used by CEF must be placed in the 
same directory. This can be a different directory from your executable.

Original comment by magreenb...@gmail.com on 20 Apr 2012 at 2:02

GoogleCodeExporter commented 9 years ago
I was trying to get this working with 1.963.439.

I tried putting cefclient.exe in a directory with the locales folder and
chrome.pak. I put all the other dlls in a folder which I added to PATH. It
complianed that libcef.dll couldn't be found, and then crashed.

My end goal is to get this deployment situation working with the CefSharp
wrapper.

Original comment by chad.ja...@gmail.com on 20 Apr 2012 at 2:18

GoogleCodeExporter commented 9 years ago
The locales folder and chrome.pak need to be in the same directory as 
libcef.dll. Relying on the system PATH variable to locate libcef.dll is fragile 
and not recommended. You should instead design your executable to explicitly 
specify paths.

Original comment by magreenb...@gmail.com on 20 Apr 2012 at 2:28

GoogleCodeExporter commented 9 years ago
Thanks for the feedback,

I did try placing the locales folder and chrome.pak in the same directory
as the rest of the dlls, but it didn't correct the issue. I have downloaded
the source code for cefclient, but I haven't been able to determine how or
where the path to the cef dlls is being specified.

We have pretty tight control of our development environment, and do
recognize the problems associated with looking up dlls on PATH. I'd be open
to explicitly specifying paths within an exe or wrapper dll, but I'm not
sure how or where that is being done in the current code.

Can you point me in the right direction?

Original comment by chad.ja...@gmail.com on 20 Apr 2012 at 2:38

GoogleCodeExporter commented 9 years ago
DLL loading is application-, OS- and framework- specific and is outside the 
control of CEF. See 
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.as
px and http://msdn.microsoft.com/en-us/library/8yfshtha.aspx for some options.

Newer versions of CEF allow customization of the pack file paths (issue #236). 
If this capability is helpful you can build it yourself following the 
instructions on the project main page or wait for a new CEF1 binary release 
some time next week.

Original comment by magreenb...@gmail.com on 20 Apr 2012 at 2:55