[SlimDX] SlimDX and Microsoft DirectX Distributables

Started by
4 comments, last by Monza 15 years ago
I have an DirectX9 application that need to be distributed on corporate and university systems. Administrators of these system are loathe to install new distributable s (e.g. the SlimDX runtimes and the Microsoft DirectX runtimes) without checking first the umpteen other applications do not break. It is also complicated for single users to install two separate runtimes before installing your software. This has become a major impediment to distribution of my software as without both the runtime installs, the application will crash. Is it OK to includes the relevant DLL's with your install (SlimDX.dll and the Microsoft D3DX9_41.dll) to copy into your application directory and bypass the runtime installation? These files are not very big and makes the installation process much simpler for end users. I checked the process on a number of machines with and without the runtimes and it seems to work fine. Am I missing something here?
Advertisement
You are free to distribute the SlimDX DLL alongside your application, but it's against the DirectX license to distribute the DLLs directly.
Mike Popoloski | Journal | SlimDX
hmmm - I thought that might be the case. Is there any way to check whether a SLIMDX compatible DirectX runtime is installed? It looks like I'll have to include the whole runtime distribution in my install file.

For example I have some code in my installer which check the .NET runtime

if (not RegKeyExists(HKLM, 'Software\Microsoft\.NETFramework\policy\v2.0')) then ; routine to install .NET 2.0

Is there a similar registry key for the DirectX version?



Wait wait wait. You have your own installer? Then just integrate the SlimDX runtime directly into it. There's any number of ways to do it; you can embed the official MSI and invoke it (we more or less to this to install DX), or you can check the docs for other alternatives that actually integrate the bits directly into your own installer.

Also, you don't need the DX runtime installer if you're using ours. Am I not doing a good job of making this clear from the docs?
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Monza
Administrators of these system are loathe to install new distributable s (e.g. the SlimDX runtimes and the Microsoft DirectX runtimes) without checking first the umpteen other applications do not break.
How would including the DirectX redistributables with your application affect this, though? They'd still need to test that it works with all the other applications, just because you're "hiding" the fact that it's installing the DirectX runtime doesn't mean you're not installing it...

Still, as Promit says, it's not actually that hard to include the runtime components in your own installer, I'm just not sure it's going to solve your partiular issue.
Oh - I see - I didn't realize the SlimDX runtime also installed the Microsoft DirectX runtimes.

As Codeka has mentioned however, installing this runtime is likely to give Administrators cause for concern as it alters shared system files.

1. Do I now slip the msi installer into my installer and sneak it on the the end-user system with my install, hoping they don't notice.
2. Give the administrator the option to install the msi separately (or from within the install) and risk the program crashing if they don't install it.
3. Keep the DLL's separate and everyone happy, but breach the Microsoft DirectX distribution agreement

Many corporate and university computer labs with dozens or hundreds of PC image their system files periodically from a central imaged computer or distribute updates through network login scripts. While they don't generally have a problem with programs installing which don't alter shared system files, my experience is they are very nervous and cautious about ANY system file or windows update, even (especially?) from Microsoft.

I guess option 2 is the righteous way to go.

[Edited by - Monza on April 19, 2009 12:49:35 AM]

This topic is closed to new replies.

Advertisement