DirectX Application deployment

Hi There,
I am working on a Direct3D application with C# 2005 Beta. It runs fine within and outside the 2005 IDE on my computer, but It won't run on somebody else's comp. (I can deploy non-directX applications though) The other person has the same version of DirectX (9.0c), and the .Net framework (2.0 Beta) as I do.
On the other computer, the program crashes right away and it says "myProg has encountered an error and needs to close..."

Is it enough to just copy and launch the "myprog.exe" file Do i need to forward the 3 DirectX DLL files that my program references. If so, is it OK to just copy them next to the exe file, or should they be installed somehow

I tried using the "Publish" feature. It said it succeeded, but the application did not install at the other end. ("Unable to continue. Application impropely formatted...")

Thanks for helping.




Answer this question

DirectX Application deployment

  • drizzed

    The way that I got around this was to create a setup project within visual studio to deploy the game.  This included the missing/updated DLL from the SDK on your machine.  It made the deployment size about 3.5mb larger, but that wasn't too much of a problem.


  • abcoura

    I have some basic note together on this (http://www.ircomm.net/forums/50/ShowPost.asp) and have started to dig deeper on the subject.

    With the VS 2005 Product line, we could use one of the two built in methods (I am still reading and trying to understand both) the first is the setup project, and the second is the clickonce system. At the moment I am leaning towards the setup project for my apps. What I have found though is that you have to use the bootstraper system to integrate the Redist package for DirectX. In doing this you have to add a project.xml file and the redist package to the VS directory on your machine, then use the prereq dialog box in the setup package to add the redist package.
    If you do not use this you can add the mdx assemblies as a required component, doing this will package the assemblies with you application and install them to the root of the application.... To me installing the correct redist package is still the best way.

    Anyway, I will be writing up what I find and adding it to my site www.ircomm.net when I find more.

    Here are some resources on clickonce though,

    MSDN Links and Resources
    ClickOnce Deployment for Windows Forms Applications http://msdn2.microsoft.com/en-us/library/wh45kb66
    ClickOnce Deployment Overview http://msdn2.microsoft.com/en-us/library/142dbbz4 
    Deployment How-to and Walkthrough Topics http://msdn2.microsoft.com/en-us/library/ms184415
    Deploying .NET Framework Applications http://msdn2.microsoft.com/en-us/library/6hbb4k3e(en-US,VS.80).aspx

    Other Resources
    windowsforms.com - FAQ Clickonce Deployment http://www.windowsforms.net/FAQs/default.aspx PageID=1&CategoryID=24&tabindex=2



  • dashbully

    Oh, I completely agree, we aren't allowed to redistribute the updated DirectX DLLs from the SDK.  But this at least allows us to get our game out on to other machines for testing. 

    I guess we just need to wait until MS releases a DirectX update (DirectX 9d anyone ), or something.



  • Alewis

    It's not enough that they have DirectX 9.0c.  They will need the redist that's matched to your SDK (go to http://msdn.com/directx and look on right side...you will see "DirectX 9.0c Redistributable for Software Developers - (August 2005)".

    Yes, it's annoying.  We're working on solving the redist problem and hope to have something Real Soon Now.  In the meantime, please make sure they have the latest redist installed.

  • rctaubert

    Are there any good news on this topic
    What is the best/recommended way to deploying managed DirectX apps with VS 2003 and VS2005 using a setup project

    thx!
    Florian


  • b4r0qu3 1337 d00d

    The saddest thing about all of the Managed DirectX support is the lack of interm instructions on how to properly distribute setup applications that reference the Microsoft download site with a stub application so .NET, DirectX, and the managed extension can be installed from an internet connection while installing a Managed DirectX game.

    It is my request that the VS.NET "wizard" (please) contain such an option. 

    I don't think it is unreasonable to assume that an application downloaded from a website would also require third party system level installs.  Macromedia does it, so does Adobe (granted it via a web script).  Why can't the deployment of a modern game include technology to do it   This is especially important in the wake of the XBox360 including a "free" online account.


  • yavvie

    My understanding of the SDK is that the resulting installation routine may be a violation of the EULA.  It would be so much easier if any part of the SDK or VisualStudio could be distributed with any application.

    We still have the problem of detecting every possible OS update that may be required to install a simple game based on a Java-like concept.


  • RickN


    I guess we just need to wait until MS releases a DirectX update (DirectX 9d anyone ), or something .i want to ask about what u said here is DirectX 9D out or what is the latest version for winxp . thankyou

  • DirectX Application deployment