I'm using Xulrunner
and GeckoFX
in a vb application (version 33.0-0.1 for both), and when debugging the application, the line
Gecko.Xpcom.Initialize(System.IO.Directory.GetCurrentDirectory() & "\xulrunner")
throws the exception:
Unable to load DLL 'xul': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Note that regardless of how I call the Initialize()
function, the exact same exception comes up. I've tried:
Gecko.Xpcom.Initialize()
Gecko.Xpcom.Initialize(System.IO.Directory.GetCurrentDirectory() & "\xulrunner")
Gecko.Xpcom.Initialize(System.IO.Directory.GetCurrentDirectory() & "\bin\xulrunner")
Gecko.Xpcom.Initialize("C:\full path here\xulrunner")
This question Unable to load DLL (Module could not be found HRESULT: 0x8007007E) led me to use Dependency walker to check the dll.
Checking the dll showed that I was "missing" a slew of other things, as shown below:
That in turn led me to Win 7, 64 bit, dll problems, which also didn't help. While DW does show some of the same missing DLLs, it's also showing other ones that aren't listed in that question.
Of the offered solutions in that question, I've tried:
- reinstalling the VS Redistributable Package
- running 'sfc /scannow'
I've noticed in the aforementioned question that some people are saying it's an issue with OCX files instead of the DLL, but I'm not sure how to even start on that end. I couldn't find any OCX files in the project directory.
I realize that the problem may also lie in how I implemented GeckoFX
and Xulrunner
. Previously, this application was working using SkyboundGecko
, GeckoFX
, and Xulrunner
. It seems that the previous developer working on this application followed this tutorial (or something very similar) using version 14 of GeckoFX
and Xulrunner
. However, this recently started causing problems for some customers using the application, as there was an Xpcom.dll conflict with a different application they were using. This issue only applies to those customers which had application X (I don't remember the name) installed on their computer. Other computers did not have this issue.
A bit of research has led me to believe that more current versions of GeckoFX
and Xulrunner
no longer require XPCom.dll, which means that an upgrade should in theory resolve this issue.
Thus, I started (loosely) following this tutorial in order to upgrade Gecko
and Xulrunner
. I removed the previous reference to the Skybound.Gecko.dll, and replaced Xulrunner with a newer version. I also downloaded and extracted the GeckoFX DLLs and files. My Bin now looks like this:
I added the reference to Gecko back to the project, and changed any references of Skybound.Gecko.xxxx
to Gecko.xxxx
. (Perhaps this tells you something that I don't know/haven't realized, since the tutorials I've seen never use Gecko.xxx - the function calls, for example, are Xpcom.Initialize()
instead of Gecko.Xpcom.Initialize()
)
I'm running Windows 8 on Windows Server 2012 R2 Standard, 64 bit OS.
Is there another way to avoid the Xpcom.dll conflict, and if not, how do I resolve this issue?
If any other information is required, comment and I'll try my best to provide it.