cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ElDavo
Level 3

DirectX 9 redistributable being a pain to download

Howdy,

I had the hard drive in my old install machine die on me...along with all my installer projects (lesson learned there.)

Anyway, I am trying to recreate a project that involved DirectX as a redistributable. I don't recall having the problem last time but this time the redistributable doesn't want to finish downloading. It always stops during the download of DirectX.cab (it seems like a download timeout in InstallShield, the download seems to work fine, just slow.)

I then downloaded the installshield MSI objects file as it appeared to have DirectX 9 included. Anyway, that installed, but InstallShield continues to say that DirectX 9 "Needs to be downloaded" (in the Location column of the Application Data/Redistributables page.)

The following is true:
- I have checked the paths, and the path to the objects folder is correct
- There is an msm file in the objects folder for DirectX 9, 213 KB, MD5 BA660E7792C9CBEB13CC666F720B192B
- I have tried to put the DirectX.cab file manually in the directory, but Installshield did not recognise that it made it complete. I then removed the file again.
- After the manual Installshield MSI objects installation from the website, there was a directX.cab in the directx folder, but InstallShield still reckons the redistributable "Needs to be downloaded"

My questions, finally, are:
- Is there a way to make the download succeed? (Can timeouts be extended? Can the files be predownloaded?)
- If not, is there another way to load up the prerequisite? (Can a flag be cleared for Installshield to regenerate its list?)

This has been the cause of a significant delay in an otherwise simple update, any suggestions would be fantastic!

Cheers,

Dave
Labels (1)
0 Kudos
(2) Replies
ElDavo
Level 3

Actually, a minor correction to the story above.

The redistributable doesn't fail due to a timeout (or doesn't appear to), it reports back "The checksum of file DirectX.cab is incorrect. Please try downloading the Merge Module or Object again." - And yes, I have tried again.

Has anyone come across the same problem? Does anyone have a solution?

Cheers,

Dave
0 Kudos
ElDavo
Level 3

Hi,

I have figured out the solution, and now recall I had to do something similar last time. The download problem remains from IS itself but I no longer need it to work.

How I solved it, assuming InstallShield is not open.

Step 1.
- Download the InstallShield MSI objects installer from the InstallShield website.
This installs a subset of the DirectX files (and I think all I need, but am yet to test.)
Note that the download option within InstallShield grabs more files, so it is probably more complete. Shame it doesn't work.
The files will end up in C:\program files\InstallShield\2010\Objects - the ISDX9.msm file in the root, and the other files in the DirectX9\Redist\Directx9c subfolder.

Step 2.
- Open the ini file describing the DirectX redistributable files.
InstallShield 2010 keeps its manifest of required files and their md5 sums for each redistributable in the ObjectGallery folder.
On my system the file was C:\program files\InstallShield\2010\ObjectGallery\{464CB2DF-4E49-4C6B-9066-2A40DA074DBE}.ini.
Despite the MSI objects installation above, the manifest file for DirectX was not updated. It was still stating that several other files were required (mainly different versions of the directX files.) Hence why InstallShield said it still needed to be updated.

Step 3.
- Remove all the file references in the ini file that do not exist after Step 1.
In my instance I had Dec2005_d3dx9_28_x86.cab, Dec2005_d3dx9_28_x64.cab, DirectX.cab, DSETUP.dll, dsetup32.dll, DX9Helper.dll, dxdllreg_x86.cab, dxsetup.exe and dxupdate.cab.
So, I removed all other files from the [DownloadedFiles] section, so it then looked like the following:

[DownloadFiles]
Key1=ISDX9.msm
Key21=Dec2005_d3dx9_28_x64.cab
Key22=Dec2005_d3dx9_28_x86.cab
Key29=DirectX.cab
Key30=DSETUP.dll
Key31=dsetup32.dll
Key32=DX9Helper.dll
Key33=dxdllreg_x86.cab
Key35=DXSETUP.exe
Key36=dxupdate.cab

Each of the files has its own INI section as well, telling where the file resides, its file size and md5 sum.
Remove all of the INI sections for the files that don't exist. (I am not sure if this is necessary or not with the above list being edited, but I did it anyway.)

Step 4 (optional).
If there are any other CAB files you need to include (this may need to be discovered with trial and error), add an entry to the table and add a section with the locations, file sizes and MD5 sums.

Step 5.
Save the file to the same spot. Make a backup first if you want, save it elsewhere. If you're on Vista onwards, you may need to be running your editing program as an administrator to be able to save it.

Step 6.
Start InstallShield. You should then notice that InstallShield says your DirectX redistributable has been downloaded and is ready to go.

Cheers,

Dave
0 Kudos