[pyxpcom] Problems distributing Xulrunner + Pyxpcom
by Brian Rieb other posts by this author
Jul 10 2008 12:43PM messages near this date
view in the new Beta List Site
Re: [pyxpcom] Minimal Python for XPCOM use
|
Re: [pyxpcom] Problems distributing Xulrunner + Pyxpcom
Hello all.
Our company is developing a cross platform client application utilizing
xulrunner + pyxcpom, and I am running into some "distribution" problems.
Like komodo edit, we are including a self-compiled copy of python
(python.org) in the application directory.
Our windows dev machine is running Microsoft Visual Studio 2005 (vc8)
When compiled (python and xulrunner+pycom)and run on the dev machine,
everything is kosher. When I copy the app folder to another box, it
stops working.
Bare with me if this information is not entirely accurate - I am still
wrapping my head around the way Microsoft does things.
Starting with Visual Studio 2005 (VC8), the Micsosft doctrine has
changed for referencing the standard C assemblies. This was an attempt
to solve the "DLL Hell" problem. In the past, when you compiled a
standard C or /C++ program, it referenced the msvcrt.dll C assemblies
present in the windows system... Not much of a problem since most
windows installations have them.
Now however, they have instituted "side by side" assemblies... you can
have multiple C assemblies on your system, separated and uniquely
identified by folders/XML manifest file. That way if my C program uses
a different version of the C assembly dependencies form your program, we
could all live together happily - sort of.
Unfortunately, these C assemblies need to be "installed" - something I
am trying *desperately* to avoid. I want our application to without any
need for an installer, or futsing with the registry. An alternative
solution is to have a local copy of the assembly dlls in your
application directory. The problem is we have the python app, and the
xulrunner app, and various dlls and pyd that reference the assembly are
in all sorts of folders and sub-folders.
The kludgey solution is what I have currently done, place copies of
these assembly dlls (3 of them) all over the place in our app folder.
One in the python folder, one in the main xulrunner folder etc... Not
only is this ugly, but actually hits a bad problem.
One of the places I need to put these dll copies is in the
xulrunner/components folder... so that pylibloader.dll and pydom.dll can
work. Unfortunately when run, xulrunner sees these and tries to
"register" these dlls... Warnings pop up the first time you run the
application... which is unacceptable.
Does anyone know a solution that addresses this? I have thought of but
don't know how/if maybe one of these solutions would work:
A) Possibly compiling xulrunner+pyxpcom statically - eeep!
B) Find a way to point all exe and dlls that depend on these assemblies
to a single, well organized copy of the assembly that lies in our
applicaion folder.
C)????
Any help would be appreciated.
Thread:
Brian Rieb
Todd Whiteman
|