Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to externalise dependancies #56

Closed
TomByrne opened this issue Jun 9, 2017 · 4 comments
Closed

Ability to externalise dependancies #56

TomByrne opened this issue Jun 9, 2017 · 4 comments
Labels

Comments

@TomByrne
Copy link

TomByrne commented Jun 9, 2017

This extension works well, unfortunately it adds considerable size to the application (when doing a windows build).

I have tried moving the DLLs to other locations and attempted various ways of giving the main application access to them, but I haven't had any luck yet.

Is there a way to use the DLL files from a different location, so that we can deploy the dependencies separately to the main application?

Is this even possible with the way that AIR extensions use DLLs?

@tuarua
Copy link
Owner

tuarua commented Jun 9, 2017

The added size is because the webview is essentially a whole web browser based on Chrome on Windows.
Should Microsoft ever add a shared control based on Edge then I would move to that (it's IE9 atm!!)
I use the inbuilt browser on OSX and it is a lot easier to maintain.

Moving dlls around is not as simple as it sounds. it's not AIR specific.

Please see this Microsoft which explains things
Search Path Used by Windows to Locate a DLL

While it may be possible to dynamically load dlls at runtime through a bit of hackery, many of the dlls used are not under my control. They have their own linking defined.
Believe me I have spent much time trying to link the files in the ANE folder.

I've had push-back from people that they have to copy some dlls and package their apps.
It's just part and parcel of developing Windows apps.
And a small price to pay for the fact that you are actually able to run and control Chrome from inside AIR.

@tuarua tuarua added the question label Jun 9, 2017
@born2net
Copy link

born2net commented Jun 9, 2017

I just wanted to say thank you for the amazing support on this open-source product!!!!!!!!!!!!

@tuarua
Copy link
Owner

tuarua commented Jun 9, 2017

@born2net No problem

@TomByrne
Copy link
Author

TomByrne commented Jun 18, 2017

I have messed around with the files and found that I can externalise most of them without issue.

Currently these are the files I'm including in my app:
CefSharp.BrowserSubprocess.Core.dll
CefSharp.BrowserSubprocess.exe
CefSharp.Core.dll
CefSharp.dll
CefSharp.WinForms.dll
CefSharpLib.dll
FreSharp.dll
FreSharpCore.dll
libEGL.dll
Newtonsoft.Json.dll

These files alone only add about 1mb to my app, the rest of the files must be on the system PATH though. I'm confident more of the files could be externalised with more tinkering (e.g. Newtonsoft.Json.dll) but for now this suits my purposes.

I'm not entirely sure when each file is used, so it's not unlikely I've removed something which shouldn't be removed. I'll keep an eye on this and post here if I need to move some files back into the main app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants