Hi, sorry to post this in this forum, I am unsure where to post it.
OK here is the thing.
I have a deployment problem. I am creating a setup with my app, created in VS 2005 Pro, using C#(.NET 2.0)
This app of mine requires DirectX runtime end user files, or the SDK but really the runtime files.
Now, during installation, I bundled in the dxwebsetup.exe. This executes fine.
2 main problems here already:
1) I want to silently install it without the need for user interaction, switch used to do this: /Q. When specifying this, it just seems to show then disappear instantly. I then find this next problem:
2) When running the dxwebsetup on its own (double click) or even within the app setup but without the /Q - it already says that the components are already installed - but they are not. Which leads me to also the next one:
3) When running the dxwebsetup on its own (double click) and the components are NOT installed, it will download them - this works 95% of the time (this is what I want always....but it's not working with the Setup created with the app in VS 2005). Going back to the directory which the application is installed in, it copies the dxwebsetup to that directory also (both the same files) and when double clicked, it gives me problem #2
But when running the file which was NOT included in the installer for this app, it works as it should.
Seems like the VS 2005 setup/installer is making the external file (dxwebsetup) act differently...
This is running on a freshly built WS2003EE SP1 and all updates applied. NO other software at all.
Now, when I RE-download the dxwebsetup from the MS site - it works as it should (downloads components) but again when bundled with the app setup, I get the same problem even though these 2 dxwebsetup's are the same
I am confused - what is going on Please can someone help the lost soul :-)

dxwebsetup wierdness - deployment with app
gRoberts
yes you're correct, my mistake... about the DX 9.0c
However it has been included in my setup to detect DX and inform the user if the version is not met.
Cheers!
CesarTabares
OK, I've included these files which I require:
Dsetup.dll
Dsetup32.dll
dxsetup.exe
Apr2006_MDX1_x86.cab
Apr2006_MDX1_x86_Archive.cab
dxupdate.cab
dxdllreg_x86.cab
However it does not seem to install/extract the Apr2006_MDX1_x86.cab file when running dxsetup.
I am reading that I may need to use the DirectXSetup Win32API to register/install this using the Manageddx flag - is this correct
[edit]
I had done that however (programmatically using the DirectXSetup() and giving it the manageddx flag to install managed directX) there is still no sign of the DirectX.dll and the directx.directsound.dll being extracted/installed. Help!
What files do I actually need to include, legally, and for it to install the managed directx.dll and directx.directsound.dll files taking small amount of space in my installer Just unfortunate I have to keep everything minimal as possible.
[/edit]
Any ideas
JohnLi
Well after several tests/removements/appendments to the application installer, and thank goodness for Virtual PC (thanks MS!) I found out that I need these files to install the files I need for my application to run and with a total size of 3.5MB (awesome!)
Apr2006_d3dx9_30.x86.cab
Apr2006_MDX1_x86.cab
Dsetup.dll
dsetup32.dll
dxdllreg_x86.cab
dxsetup.exe
dxupdate.cab
Whitebox PC Repair
J Gilbert
Note that this group of files relies on the fact that the core DX9.0c files are already installed. I'm not 100% sure what, if any, error you will get if they are missing.
Also if any of your users may be using an x64 machine I think you should include
Apr2006_d3dx9_30.x64.cab
Though I suspect everything may still work in some x86 compat mode.
Buccaneer
Sure I understand
I remember a while ago I posted this question in the DirectX newsgroups.
I cannot include the redistribution list as those do not have the managed DirectX files I require.
I also cannot include the 50MB+ DirectX re-distribution End user software either because well, the file size and also the bandwidth for downloads on my server.
So I thought by including the dxwebsetup in my app (300KB) all would be well until I hit the problem in my initial post.
(edit as due to David's great response)
1) If I cannot include dxwebsetup, what other way can I redistribute safely the Managed directX files (specifically Microsoft.DirectX.dll and Microsoft.DirectX.Directsound.dll)
I could provide a link for the download however the links could change in the future and prefer if I had everything possible in my installer.
Many thanks, your input is valued! :)
Mulhall
Thanks David! Much appreciated. Well that sorts that out! :-)
Just when I posted my questions above, you had replied - so I am wondering if you can take a look at those questions and get back
Greatly appreciated!
Hojgaard
DXWebsetup.exe is not part of the authorized redist package. Look at the documentation in <SDK Root>\Documentation\License Agreements to see what you are/aren't specifically allowed to redistribute. Doing anything else could subject you to EULA violations, or worse, expose your end user to security issues that could leave you liable.
The link that The ZMan provided is a complete and accurate description of what you need to do. If there are specific problems you have while following that documentation, please let us know and we will do everything we can to help you.
You will want to use the /silent option to avoid user interaction.
joukz
Hopefully David will come in and clarify, but that link is referring to the redist that comes in the SDK - dxsetup.exe and its usage is described here http://msdn.microsoft.com/library/default.asp url=/library/en-us/directx9_c/Installing_DirectX_with_DirectSetup.asp
I'm not sure why its not allowed either, but when MS released the websetup we asked and were told that it wasn't allowed. Who was it that told you it was
However your interpetation of the license appear to be valid - though of course I am NOT a lawyer.
Marco Bergonzini
Thanks
yeh, my app is only for x86 users however I am sure it will still work ok for x64 factor and XP and higher OS's have DX9.0c installed by default :)
as well as this I have performed a reg check on the version of DX the user has during the installation...just to be sure ;)
Thanks
gatorsjdc
Definitely not. So question 2 is not applicable.
You remove the parts that aren't needed, which will significantly reduce the "50Mb" size you quote, and redistribute the runtime components. The article here http://msdn.microsoft.com/library/default.asp url=/library/en-us/directx9_c/Installing_DirectX_with_DirectSetup.asp has very clear instructions on how to do this (see "Reducing the DirectX redistribution size").
If server bandwidth issues are a problem, then you will want to point users to our websetup link and let them get the necessary latest updates. This is the simplest approach for you, but requires the user take an additional installation step.
PraveenPatel
interesting - but I was told that it could be redeployed with your app as deploying the core files (dll) is NOT allowed therefore you need to include a redistributional package, like dxwebsetup.
dxwebsetup only retrieves the files from the update server so i dont understand how it cannot be allowed.
redistributing the core files (dll's) are of course not allowed, therefore the other solution is to include a redistributional package installer.
http://msdn.microsoft.com/library/default.asp url=/library/en-us/dnwmt/html/ds_license.asp
Redistribution runtime
A redistribution run-time package provided for vendors to bundle with their applications.
ABlanchette
XP does not ship with 9.0c - 9.0c actually released long after Windows XP.
XPSP2 does contain DX9.0c so anyone with XPSP2 will be safe.
I have no clue what the coverage of XP without XPSP2 is.
K.Kong
David: you're FANTASTIC - thank-you very much for your valuable time (and zman) for this, it has cleared it up :-)
keep up the great work!!
I will post back if I have issues with the installer and the Redist packages...
Take care!