dxwebsetup wierdness - deployment with app

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 :-)

 




Answer this question

dxwebsetup wierdness - deployment with app

  • Raj_Singh

    Last time I asked the Microsoft folks they told me that dxwebsetup is not allowed to be distributed in your applications without violating the SDK EULA. This may be why.

  • Dr.Gonzo

    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



  • Venkata Bayanaboyna

    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! :)

     



  • C.R.B.

    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.



  • tanya_cakes

    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.



  • Sandeep_MSFT

    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



  • thiszhw

    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.



  • Dovik

    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.



  • Claus Brod

    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



  • DonLeo

    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!



  • Don 007

    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!



  • Nathaniel Engelsen

    ahmedilyas wrote:

    1) Can I include the dxwebsetup.exe in my app as a redistribution

    Definitely not. So question 2 is not applicable.

    ahmedilyas wrote:

    3) 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)

    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.



  • spottedmahn

    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.



  • Jahfer V P

    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!



  • dxwebsetup wierdness - deployment with app