Dependencies for cefsimple? (trying to make installer)

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

Dependencies for cefsimple? (trying to make installer)

Postby ThomasWrobel » Wed Apr 22, 2015 3:35 pm

I am pretty new at CEF, but I managed to customise cefsimple for my needs - essentially just a minimal resizeable window pointing to a fix directory with a JavaScript game.

Compiling and running makes it work as expected. In the cefsimple/release directory I can copy all those files elsewhere and it works just fine.

I now am trying to make a installer for the game. I am using Visual Studio Installer am trying to work out the minimum needed to export to make a cefsimple.exe run.

I have tried many things. Heres a typical setup showing the dependencies being used;
Image

While the installer exports fine, what it installs crashs. I think its down to the libcef.dll not being installed correctly. Note the log message in the screenshot.

I have also tried just manually telling the installer to copy cefsimple's output (as above) as well as the whole contents of cef_binary_3.2272.2077_windows32\Release.
This also results in a cefsimple that crashes on startup when installed.

Attempting to debug the cefsimple.exe after a installation that includes cef_binary_3.2272.2077_windows32\Release gives me;

Code: Select all
>   libcef.dll!0fa16b29()   Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for libcef.dll]   
    libcef.dll!0f9ea446()   Unknown
    libcef.dll!0f949416()   Unknown
    libcef.dll!0f949507()   Unknown
    libcef.dll!0f9e9ea3()   Unknown
    libcef.dll!0f9e9ea3()   Unknown
    libcef.dll!0f9e9d0d()   Unknown
    libcef.dll!0f9e9c9d()   Unknown
    libcef.dll!0f956f90()   Unknown
    libcef.dll!0f9e9ea3()   Unknown
    cefsimple.exe!011d0bf5()   Unknown
    cefsimple.exe!011c2847()   Unknown
    cefsimple.exe!0127b9eb()   Unknown

In the callstack. (note I checked and libcef.dll is in the same directory as the exe)

It also tells me libcef.dll.pdb is not loaded, which seems to be needed for more debugging.

---

Given the non-installer normal build works - and I can manually move that directory to a different machine and run it - I suspect I am just exporting the wrong things in the installer settings?
ThomasWrobel
Newbie
 
Posts: 6
Joined: Tue Apr 07, 2015 9:12 am

Re: Dependencies for cefsimple? (trying to make installer)

Postby magreenblatt » Thu Apr 23, 2015 2:20 am

Did you compare the directory structure/files that result from running the installer to the directory structure/files in the Release directory?
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Dependencies for cefsimple? (trying to make installer)

Postby ThomasWrobel » Thu Apr 23, 2015 3:58 pm

Theres differences yes.
Heres the folder thats just compiled normally, no install program, using the default release build;

Image

(result; runs fine if cefsimple.exe is clicked. )

Heres the result of running a install compiled with the settings in the screenshot above;

[JUST cefsimple.exe - not other cef files at all - so not worth a screenshot]

Note; the libcef.dll is not even there. Probably down to the " LNK4221: This object file does not define any previously undefined public symbols" warning in the compiler? (see screenshot in first post)
(result; Doesnt run...complaints of missing libcef.dll ;) )

Heres the result of running a install with "output from cefsimple" and all the files in cef_binary_3.2272.2077_windows32\Release. manually set to be copied over.

Image

(Result: "cefsimple has stopped working" crash as soon as you hit the cefsimple.exe file)

That second attempt was a guess based on Readme.txt's description of that release directory
"Contains libcef.dll, libcef.lib and other components required to build and run the release version of CEF-based applications. "

Honestly, I am stabbing in the dark as I don't know the minimum needed to get it working. Manually specifying individual files and dll's to put in the application folder seems wrong somehow, given the normal cefsimple compile already knows what's needed.

-
Note; the "fanficmaker" directory is just the html & javascript files that will be loaded if it runs and can be ignored for the purpose of debugging this.
ThomasWrobel
Newbie
 
Posts: 6
Joined: Tue Apr 07, 2015 9:12 am

Re: Dependencies for cefsimple? (trying to make installer)

Postby magreenblatt » Thu Apr 23, 2015 4:20 pm

You need to also install the pak, dat and locales files. See the binary distribution README.txt file for details.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Dependencies for cefsimple? (trying to make installer)

Postby ThomasWrobel » Thu Apr 23, 2015 7:36 pm

I did read ReadMe.txt but the Pak files were listed under "Optional components:" so I didnt think they were needed for a simple framed webapp
I'll try adding them all manually then.

Just to be clear; The users wont be able too see any chrome interface elements - its just the game in a window, nor do I want them access to chromes inspector.
Do I still need those pak files? If I use "CefSettings.pack_loading_disabled" will these files not be needed?

---
Also, any idea why this isn't being done picked up automatically? It seems to messy to have to tell the installer one at a time which files it needs. Pretty sure its supposed to pick it up by taking whatever the CefSimple build itself uses & produces.
(not to mention making a manual list of used files is harder to maintain if CefSimple ever needs a new/different file in order to run...)
ThomasWrobel
Newbie
 
Posts: 6
Joined: Tue Apr 07, 2015 9:12 am

Re: Dependencies for cefsimple? (trying to make installer)

Postby magreenblatt » Fri Apr 24, 2015 2:32 am

ThomasWrobel wrote:If I use "CefSettings.pack_loading_disabled" will these files not be needed?

The files themselves may not be needed but the resources that they contain are still required for things like select borders, arrows, etc. You'll notice they're missing because a red region will be displayed -- you will then need to implement CefResourceBundleHandler.

ThomasWrobel wrote:Also, any idea why this isn't being done picked up automatically?

I've never used Visual Studio Installer so I have no idea.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Dependencies for cefsimple? (trying to make installer)

Postby ThomasWrobel » Fri Apr 24, 2015 4:48 pm

I could probably work out the VSI settings myself if I knew what parts of cefsimples build process made what required files.

When looking at the Project>>Project dependencies of CefSimple I see only two things listed;

ZERO_Check & libcef_dll_wrapper

Does this mean CefSimple needs nothing from any of the rest? That itself and those two projects are all it needs when building?

Visual Studio Installer essentially just gives me a list of projects in the solution (ALL_BUILD,cefclient,cefsimple,libcef_dll_wrapper & ZERO_CHECK) and lets me pick to include any of the following from them;

"Primary Output" - described as the .exe or .dll built by that project.
"Resource Satellite Dlls"" - Contains all the satellite resource files in the project.
"Debugging symbols" - Contains the debugging file for the project.
"Content Files" - Any items in the project marked as 'Content'.
"Source Files" - Contains all source files in the project.
"Documentation" - Contains all the XML documentation files built by the project.

Some combination of these files will be what I need, but I haven't had much luck working out what. I am just assuming I only need to take files from "ZERO_Check & libcef_dll_wrapper".

Obviously cefsimple.exe is the primary output from "cefsimples" build.
I assume libcef.dll comes from "libcef_dll_wrapper's" primary output.

Id guess the pak and dat files are "Content Files" maybe.


If I knew for sure how for example, when building CefSimple normally, it knows to put "cef_200_percent.pak" into its /release directory it would help.
ThomasWrobel
Newbie
 
Posts: 6
Joined: Tue Apr 07, 2015 9:12 am


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 46 guests