For some strange reason only 9.0b is provided out of the box in IA, but its easily rectified.
I'm posting my script here in the hope its of use to others.
My script comprises of a check script and a setup script (to replace IA's checkdx9b and setupdx9b scripts respectively).
You will need to add these to your project (attached).
Then add a call to your Check Application Pre-Requisites region:
Code: Select all
if Variable REMOVE not Equals TRUE
Include Script: checkdx9
end
Note: My check script looks for the presence and versions of D3DX9_43.dll, D3D10_43.dll and D3D11_43 in the system32 folder.
As DirectX 10 & 11 is not available for Windows XP you may want to remove the latter two checks if you are targetting XP (or add Vista/7 detection logic around them).
Also, should you ever update to a later SDK version, you will also need to udpate the verison number at the top of this script (to one revision lower than your bundled version).
The script also allows the runtime to be skipped in case of problems in the field. To skip detection/installation simply supply the command line parameter SKIPDXRUNTIME=TRUE
e.g. MySetup.exe SKIPDXRUNTIME=TRUE
Next, add the call to setup before the end of your Install Application Pre-Requisites region.
Remembering to set the URL of the webmedia to a suitable path on your server:
Code: Select all
Comment: DirectX 9b
[DEFINE WEB MEDIA Microsoft DirectX Runtime]
Include Script: setupdx9
Note: My setup script reports any errors during setup - advising the user to download and install the runtime manually.
However, it permits the installation to continue upon failure. You may prefer to add a Terminate Installation call after the error message.
Finally, you will need to download the DirectX June 2010 runtime from Microsoft (directx_Jun2010_redist.exe):
http://www.microsoft.com/download/en/de ... px?id=8109
Then extract the contents of the zipped exe and keep the components you need (see later).
Place the extracted files in your IA runtimes folder under the following folder:
#IADIR#\runtimes\directx_minimal_binThe script expects to find the DXSETUP.exe there.
Note, if you add all the extracted files it adds well over 100MB to your setup!!!
I found a minimal install was more than sufficient for my needs and weighs less than 10MB.
Simply discard the files you do not require (following page has more info):
http://msdn.microsoft.com/en-us/library ... ution_Size
I found the following list of files provides a good minimal setup with D3D support:
DSETUP.dll
dsetup32.dll
dxdllreg_x86.cab
DXSETUP.exe
dxupdate.cab
Feb2010_X3DAudio_x64.cab
Feb2010_X3DAudio_x86.cab
APR2007_xinput_x64.cab
APR2007_xinput_x86.cab
Jun2010_D3DCompiler_43_x64.cab
Jun2010_D3DCompiler_43_x86.cab
Jun2010_d3dcsx_43_x64.cab
Jun2010_d3dcsx_43_x86.cab
Jun2010_d3dx9_43_x64.cab
Jun2010_d3dx9_43_x86.cab
Jun2010_d3dx10_43_x64.cab
Jun2010_d3dx10_43_x86.cab
Jun2010_d3dx11_43_x64.cab
Jun2010_d3dx11_43_x86.cab
Jun2010_XAudio_x64.cab
Jun2010_XAudio_x86.cab
Please let me know if you find it useful, encounter any problems or make any improvements.
As always, no warranty is implied!