[IronPython] DLL hell?

Jonathan Jacobs korpse-ironpython at kaydash.za.net
Sun Nov 13 19:49:50 CET 2005


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 
{"The specified module could not be found. (Exception from HRESULT: 

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 


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