Tbird761

This seems to be a common problem, but I've yet to find a real solution. The only thing I've found that works so far is to include a bunch of dlls with XNA applications. What does not work, however, is satisfying the posted requirements:
  • .NET Framework 2.0
  • XNA Framework
  • DirectX 9.0c (latest update)
When a machine satisfies the above requirements, it still cannot run XNA applications (dies when initializing the graphics device). However, any machine with the XNA SDK has no trouble doing so. It's not reasonable to ask people to install C# Express and the XNA SDK (~120MB total) just so they can play my XNA arcade games.

Has anyone found a better solution so far


Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

Jim Perry

If it's having problems initializing the graphics device it could be that the machine doesn't have a graphics card that meets the minimum required. What card does the machine have




Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

waruwaru

Well, few possibilities:

- the machine doesn't have the hardware to support it.  But if you install the XGSE/SDK, the game starts to work, then the hardware is fine.  Have you tried uninstall the XGSE/SDK on these machine and see if the game still works   If so, they may not have had the latest .net/xna/dx installed.

- the user is trying to run a debug build of your game.  This will not work with the non-dev library/frameworks because debug builds requires/uses debug libraries by default

- the game references some stuff that is only available on dev machines.

Try Dependency Walker (it may not work so well on CLR stuff)

http://www.dependencywalker.com

Some good info here:

http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1188215&SiteID=1

EDIT: another thread http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1215106&SiteID=1






Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

dczraptor

There should be a huge banner somewhere that lets people know that there are different versions of Directx 9.0c. I must have answered that same question over ten times in the past month, and it's almost always the culprit. Either that, or we should be able to grab the latest off of windows update, so even normal people will know it exists.

Or, if someone from the community is knowledgeable enough: create a little requirements checker that anyone can bundle into their install programs that will automatically alert the user which component is missing (.net 2.0, xna framework, directx, compliant graphics card). It would really make life easier for everyone around here.

edit: i caved and wrote a little program: http://xnamatrix.com/xnareq.php






Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

Tbird761

I do appreciate the help that this topic has received so far, but as I said--the DX version is up-to-date.  I had the guy run the latest 9.0c "web update" installer before running the game.  His video card is a Radeon X800 series which supports Pixel Shader 2.b, meeting the requirements.  He's using the latest video card drives as well (Cat 7.1) with the .NET 2.0 Framework installed as well as the XNA 1.0 Redist package having been installed.  I do understand that even strictly 2D XNA apps require PS 1.1 support and PS 2.b should satisfy.

So, installing the latest 9.0c update is not the solution.  I'd already tried that since it's a common fix and made sure to post that I had done so in my first post.  Also, I gave him a release build instead of a debug one, so that isn't it.  (I always make sure to distribute release builds since they run faster.)

It's like the XNA Framework doesn't actually make it to where apps can see any of the dlls--doesn't register them properly or something.  The errors all say they can't find various dlls unless you include them with the app itself.  Another person on this forum at one point posted a zip file with all the dlls required to circumvent this problem, but distributing those dlls with an application violates the license of many of those files.  As such, I'm hoping to actually fix the problem instead of just slap a bandaid on it.

Any other ideas as to how to fix the situation





Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

Shawn Hargreaves - MSFT

What specific DLL's does the error say is missing





Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

Tbird761

It must have been specific to that particular machine, since I was able to run it on an old P4 I had after installing .NET, DX9, and XNA. Perhaps it's a Vista thing The P4 was XP and the first person I talked about has Vista Business x86.



Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

George Clingerman

XNA is not officially supported on Vista currently so yes, it could definitely have been Vista. There is some step by step instructions you can follow from here that may help the game run on the Vista PC, but there still is no guarantee at this time that it will run on an unsupported OS.

Hope that helps.





Re: XNA Game Studio Express Getting XNA apps to run on non-development machines

Thomas Aylesworth

The easiest way to find out what's wrong is to add an exception handler to your main function.

static void Main(string[] args)

{

using (SpaceWar3DGame game = new SpaceWar3DGame())

{

try

{

game.Run();

}

catch (Exception e)

{

#if !XBOX

System.Windows.Forms.MessageBox.Show(msg);

#endif

}

}

}

When the program dies, you'll get a dialog box telling you exactly what's wrong.

Also, I highly recommend dzcraptor's XNA Requirements checker he provided the link to above.