[SlimDX] Error loading the slimdx dll

Started by
5 comments, last by grokys 11 years, 11 months ago
I've been working on a SlimDX application using VC# 2010 express edition. I ran into a few problems when attempting to deploy it on another PC..

The target machine is XP SP3, and has .NET framework 4.0 installed, I also ran the slimdx runtime installer (and installed the vc++ 2010 runtime and the directx runtimes just to be absolutely sure).

When attempting to run the application, i ran into an error stating that it could not load the slimdx dll or one of it's dependencies.

After a lot of searching (with no luck), and running dependency walker on it (also with no luck, the only reported issues were with DX10 and WPF related stuff which are not relevant here) I started looking closer at the slimdx dll itself. After opening it with a hex editor, i found the manifest.

While the slimdx runtime installer installed the vc++ 2010 runtimes, and dependency walker says that the dll links to that version, the manifest in the dll claims to require Microsoft.VC90.CRT (the vc++ 2008 runtime). installing this runtime on the target machine gets everything up and running again.

I've checked and rechecked the version of the slimdx dlls, and they seem to be the current versions (march 2011) - Am I missing something here? did i make some stupid basic mistake, or is this a real problem in the march 2011 slimdx dll files? I'm assuming that this is my mistake since i can't find any reference to this elsewhere (although i did find a number of threads regarding similar deployment issues).
Advertisement
All of the 2011 files should be built against the VC10 runtimes. We've had sporadic issue reports about deployment problems though, which always end up being impossible to reproduce. Obviously we want all of our products to be completely bug free; our stance on the end-user runtime packages, however, has always been this: they're good for quickly showing someone your work, but for a professional project you're going to want an installer of your own, in which case you can just build the three simple steps we perform into your own installer.

Either way, we're aiming at doing another release some time this month, so hopefully those new builds will fix any lingering problems with the old ones.
Mike Popoloski | Journal | SlimDX
As far as i can tell, it is built against the VC10 runtime.. but the manifest is telling it that it -also- needs the VC9 runtimes - they never get loaded or used as far as i can tell, but if they are not present windows (or maybe .NET, not sure which) gets upset.

Here is a copy of the manifest extracted from slimdx.dll:


<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>


the dll this was extracted from was located at C:\Program Files (x86)\SlimDX SDK (March 2011)\Bin\net40\x86 - since the forum won't allow me to upload the file (even in a rar/zip), i've placed it on the web server i use for testing: http://lordjekky.dyndns.org/SlimDX.dll

the above xml can be found at offset 0x326a58 in the file.
Very weird. I'm not sure what the problem is, but we're in the process of doing a fresh new release, so these sorts of problems should hopefully disappear.
Mike Popoloski | Journal | SlimDX
Hi Guys,

FYI, I can reproduce this with the latest January 2012 redistributable package on a clean install of Windows XP. If I install the VS2008 redist then the problem goes away.

Mike, you mention the 3 steps your installer performs: are these documented anywhere? A google search didn't turn up anything and I'm less than familiar with WIX scripts...

Thanks,
Steven
Ah, ignore my question about deployment - I've found the documentation, in exactly the place you'd expect it to be: http://slimdx.org/docs/#Installation
Looking further I notice that the .wxs for the SDK installs the vs2008 redist whereas the runtime does not. It looks like there is a still dependency on the vs2008 runtime in SlimDX somewhere.

This topic is closed to new replies.

Advertisement