[IronPython] DLL hell?
Jonathan Jacobs
korpse-ironpython at kaydash.za.net
Sun Nov 13 19:49:50 CET 2005
Hi,
I've recently downloaded the DirectX October 2005 SDK in the hopes of playing
with some of IronPython's recently added features. I've run into some sort of
very odd situation, when attempting to load the "Microsoft.DirectX" assembly
(for the Microsoft.Direct.Vector3 [and friends] struct) by name I am told that
IronPython "Could not load assembly Microsoft.DirectX". Which struck me as odd
because I know that assembly exists, so I found out the full filesystem path
to the assembly and copied it to an accessible directory and tried to load it
as a file and once again I am told that IronPython could not load the assembly.
Stepping through the code produces a System.IO.FileNotFoundException with the
value:
{"The specified module could not be found. (Exception from HRESULT:
0x8007007E)":null}
Both procedures produce the same message.
Inspecting the DirectX installation directory leads me to believe that the
installer installed the "beta" (there is a directory named "Beta" in the
"<DirectX>\Developer Runtime" directory alongside an "x86" directory) version.
Trying the "beta" and "x86" versions of the respective DLLs shows that the
"beta" DLL is indeed the DLL that was installed to the global assembly
registry (or whatever it is called) and that the "x86" (read: regular) version
of the DLL works fine when loaded via IronPython.
Simply adding a reference to the "beta" DLL via the Visual C# 2005 IDE seems
to work. The sample project (that I tested) didn't actually compile because
of, what appear to be, the addition of a number of symbols that exist in other
DirectX namespaces.
If anybody could perhaps shed some light on this situation for me, I'd be most
appreciative.
Regards
--
Jonathan
When you meet a master swordsman,
show him your sword.
When you meet a man who is not a poet,
do not show him your poem.
-- Rinzai, ninth century Zen master
More information about the Ironpython-users
mailing list