-
-
-
- (772)
-
premium membership
-
Posts
226
|
|
you should be able to test this yourself, if you had a clean winxp machine.
but fyi, you need vcpp2k5sp1 for xna2.
unfortunatly i dont know what you'd need for xna3, and whatever you do need might change come Release in less than 10 days.
|
|
-
-
- (1014)
-
premium membership
Team XNA
-
Posts
702
|
|
Games created using XNA Game Studio 2.0 and 3.0 both require files that are installed by the Visual C++ 2005 SP1 redistributable package.
You do not always need to include this VC++ 2005 SP1 redistributable package in your installer though. For example, the .NET Framework 2.0 SP1 contains the necessary VC++ 2005 SP1 files. Also, we have added the necessary VC++ 2005 SP1 files to the XNA Framework Redistributable 3.0 (in the final release only - you won't see these files there in the beta).
Thanks!
|
|
-
-
- (20570)
-
premium membership
MVP
-
Posts
12,471
|
|
Aaron Stebner:
Also, we have added the necessary VC++ 2005 SP1 files to the XNA Framework Redistributable 3.0 (in the final release only - you won't see these files there in the beta).
Everybody take note of this announcement its HUGE.... the XNA redist now includes the DirectX files we need AND the VC++ files we need so for 3.0 all you need is .Net 2.0 and XNA Redist. This is going to make life so much easier in the forums.
Play Kissy Poo - a game for 4 year olds on Xbox and windows The ZBuffer News and information for XNA Follow The Zman on twitter, Email me Please read the forum FAQs - Bug/Feature reporting Don't forget to mark good answers and good playtest feedback when you see it!!!
|
|
-
-
- (1014)
-
premium membership
Team XNA
-
Posts
702
|
|
I'm planning to talk more about the implications of this once XNA Game Studio 3.0 releases, but I think it will end up making things much easier for folks who want to redistribute their Windows games because you will only need to install the XNA Framework Redistributable 3.0 as a prerequisite instead of installing several other components that have to be downloaded from several different sources.
One note to keep in mind though - if you are using XNA Game Studio 3.0 and plan to use ClickOnce, and you also want to support installing and running on systems that only have the .NET Framework 2.0 (as opposed to .NET 3.0 or 3.5), you will need to target the .NET Framework 2.0 when creating your Windows game project in the Visual Studio 2008 IDE. Failure to do so will result in errors during ClickOnce deployment on systems that only have the .NET Framework 2.0 installed.
In up-level Visual Studio 2008 editions, you can target the .NET Framework 2.0 by changing the value in the drop-down menu in the top right corner of the New Project dialog.
In Visual C# 2008 Express, this drop-down menu does not appear in the New Project dialog, so you will have to do the following instead:
- Create your project
- Right-click on your project in the Visual Studio solution explorer after creating it and choose Properties
- Click on the Application tab
- Change the Target Framework drop-down from the default .NET Framework 3.5 value to .NET Framework 2.0
- Update your project's references and using statements to remove any assemblies and namespaces that are not available in the .NET Framework 2.0
- Save all project files
- Rebuild the project
Thanks!
|
|
-
-
- (772)
-
premium membership
-
Posts
226
|
|
I concur. This was one of the reasons I let my business partner plop USD$2000 on a copy of installshield (to make life bearable on future games). So kind of ironic that this problem is now solved for everyone, but I'll take this kind of irony any day :P
Also, thank you for posting the additional info on clickonce... that means we should always target the .net2 framework, as you never know what joe 6 pack is using.
|
|
-
-
- (14720)
-
premium membership
Team XNA
-
Posts
9,333
|
|
Novaleaf Software:
Also, thank you for posting the additional info on clickonce... that means we should always target the .net2 framework, as you never know what joe 6 pack is using.
Well, unless you want to take advantage of .NET 3.5 features. For instance LINQ or the C# extension methods (which I was told have some sort of runtime component). There are likely other APIs that are 3.5 only (such as the speech APIs).
|
|
-
|
|
|
InstallShield is a good product but if you want a budget apporach, take a look into WiX instead -- an open source project from Microsoft.
With a few hundred lines of the "correct" WiX XML, the MSI it creates will be as good. Bob Arson over at http://www.joyofsetup.com/ works on the Flight Sim team as well as on WiX, so it's usable for serious games. Its of course not as trivial to figure out as InstallShield but it is possible if you read the docs. Perhaps someone will do a good tutorial for XNA one day...
|
|
-
|
|
|
The ZMan:
Everybody take note of this announcement its HUGE.... the XNA redist now includes the DirectX files we need AND the VC++ files we need so for 3.0 all you need is .Net 2.0 and XNA Redist. This is going to make life so much easier in the forums.
Aaron, can you confirm if this is true with regard to DirectX? As I understand, in XNA 2.0 you had to make sure a few various DirectX components (d3d9_33, xinput, xact, etc) were installed.
In XNA 3.0, we don't have to do this any more? How does this technically work? Does the XNA 3.0 redist install these automatically under the covers?
Thanks
|
|
-
-
- (20570)
-
premium membership
MVP
-
Posts
12,471
|
|
Indeed it does Aaron (and others from the team) managed to cut through the internal politics (yes its all about who owns what) and the XNA redist will ship aith all the DirectX files that XNA needs. It makes the redist a little bigger but it cuts down the windows redist issues that we see most often i.e people forgetting or thinkging they know better and missing the other redists. I just talked with Aaron about this a couple of days ago... The Zman is a much happier man for these decisions...
Play Kissy Poo - a game for 4 year olds on Xbox and windows The ZBuffer News and information for XNA Follow The Zman on twitter, Email me Please read the forum FAQs - Bug/Feature reporting Don't forget to mark good answers and good playtest feedback when you see it!!!
|
|
-
-
- (14720)
-
premium membership
Team XNA
-
Posts
9,333
|
|
The ZMan:The Zman is a much happier man for these decisions...
I think everyone should take note of this announcement. A happy ZMan makes for a happy forum. ;-)
|
|
-
|
|
|
Yes, I see now that Aaron actually talked about the DirectX integration on his blog a few months back http://blogs.msdn.com/astebner/archive/2008/09/18/8957968.aspx.
I'm also happy. I'm creating a proper XNA 2.0 installer using WiX for the heck of it, and boy is it complicated. Making sure .NET 2.0, VC2005 SP1 CRT, DirectX, and XNA 2.0 redist are all installed before my game is very annoying. Both the .NET 2.0 redist and XNA 2.0 redist are setup packages so they can't be called directly from inside a setup and thus require a bootstrapper. The DirectX redist is a plain exe so can be called from a deferred custom action. Installing the CRT can be done variuos ways, and I'm going with a merge module. It’s all way too complex...
I'm glad to see that XNA 3.0 will make most of this code obsolete :)
|
|
-
-
- (1014)
-
premium membership
Team XNA
-
Posts
702
|
|
XNA Guy:
Aaron, can you confirm if this is true with regard to DirectX? As I understand, in XNA 2.0 you had to make sure a few various DirectX components (d3d9_33, xinput, xact, etc) were installed.
In XNA 3.0, we don't have to do this any more? How does this technically work? Does the XNA 3.0 redist install these automatically under the covers?
The ZMan already replied, but I can confirm as well - the XNA Framework Redistributable 3.0 will install the components of the DirectX 9.0c runtime that are needed for XNA Framework-based games on Windows (in addition to the Visual C++ 2005 SP1 runtime files it requires, as indicated in one of my previous replys). It does not install the entire 9.0c runtime, only the specific versions of the specific components that are needed. The specific list will be documented in a 3.0 version of this MSDN topic after 3.0 ships, but here is the list in the meantime:
- OCT2006_d3dx9_31_x86.cab
- APR2007_d3dx9_33_x86.cab
- aug2007_xact_x86.cab
- APR2007_xinput_x86.cab
- Jun2008_X3DAudio_x86.cab
- Jun2008_XAudio_x86.cab
- DSETUP.dll
- dsetup32.dll
- DXSETUP.exe
- dxupdate.cab
Behind the scenes, we added logic to the MSI for the XNA Framework Redistributable 3.0 that is similar to what I described in this blog post about how to include DirectX components into an MSI-based installer using WiX. We use WiX behind the scenes to create all of the MSIs that are a part of XNA Game Studio setup, so it was almost a direct copy and paste for us from that syntax.
XNA Guy:
With a few hundred lines of the "correct" WiX XML, the MSI it creates will be as good. Bob Arson over at http://www.joyofsetup.com/ works on the Flight Sim team as well as on WiX, so it's usable for serious games. Its of course not as trivial to figure out as InstallShield but it is possible if you read the docs. Perhaps someone will do a good tutorial for XNA one day...
I am planning to create some kind of sample that shows how to use WiX to build an MSI for an XNA Game Studio 3.0-based game once 3.0 is released. I think WiX is a great tool for creating MSIs, and I personally use it all the time. Bob has also added some useful game-specific functionality such as Windows Vista Game Explorer integration that I'd like to try to demonstrate in a sample as well.
There is one thing to keep in mind when considering WiX - currently, it does not have a chainer/bootstrapper, so it is only part of the equation for creating a game installer as things stand now (until their chainer, code-named Burn, matures further). Even with these changes to the XNA Framework Redistributable in 3.0 to add DirectX 9.0c and Visual C++ 2005 SP1 runtime dependencies, it is still necessary to create a chainer that will detect and install the XNA Framework Redistributable 3.0 if it isn't yet installed, and then install your game. The VS bootstrapper used by ClickOnce and setup/deployment projects can do this for you, but you cannot use WiX for your MSI in that type of scenario until the next version of Visual Studio, which will ship WiX.
Thanks!
|
|
-
-
- (1014)
-
premium membership
Team XNA
-
Posts
702
|
|
Aaron Stebner:
There is one thing to keep in mind when considering WiX - currently, it does not have a chainer/bootstrapper, so it is only part of the equation for creating a game installer as things stand now (until their chainer, code-named Burn, matures further). Even with these changes to the XNA Framework Redistributable in 3.0 to add DirectX 9.0c and Visual C++ 2005 SP1 runtime dependencies, it is still necessary to create a chainer that will detect and install the XNA Framework Redistributable 3.0 if it isn't yet installed, and then install your game. The VS bootstrapper used by ClickOnce and setup/deployment projects can do this for you, but you cannot use WiX for your MSI in that type of scenario until the next version of Visual Studio, which will ship WiX.
I'd like to amend my previous statement a bit - a fellow Microsoft employee contacted me after I posted my previous reply and sent me a link to this information that describes how to create a VS bootstrapper for an MSI that was built separately using WiX. Because we also created and will ship a VS bootstrapper package for the XNA Framework Redistributable 3.0, the information in that article can also be used to create a bootstrapper that will install the XNA Framework Redistributable 3.0 as long as you have a Visual Studio 2008 edition and the XNA Game Studio 3.0 product installed.
Here is some example syntax for the Test.proj file described in that article that has been modified to include the necessary packages to bootstrap the .NET Framework 3.5 and the XNA Framework Redistributable 3.0 (I'll include more details about this in a future post on my blog as well):
| <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> |
| |
| <ItemGroup> |
| <BootstrapperFile Include="Microsoft.Net.Framework.2.0"> |
| <Visible>False</Visible> |
| <ProductName>.NET Framework 2.0 %28x86%29</ProductName> |
| <Install>false</Install> |
| </BootstrapperFile> |
| <BootstrapperFile Include="Microsoft.Net.Framework.3.0"> |
| <Visible>False</Visible> |
| <ProductName>.NET Framework 3.0 %28x86%29</ProductName> |
| <Install>false</Install> |
| </BootstrapperFile> |
| <BootstrapperFile Include="Microsoft.Net.Framework.3.5"> |
| <Visible>False</Visible> |
| <ProductName>.NET Framework 3.5</ProductName> |
| <Install>true</Install> |
| </BootstrapperFile> |
| <BootstrapperFile Include="Microsoft.Windows.Installer.3.1"> |
| <Visible>False</Visible> |
| <ProductName>Windows Installer 3.1</ProductName> |
| <Install>true</Install> |
| </BootstrapperFile> |
| <BootstrapperFile Include="Microsoft.Xna.Framework.3.0"> |
| <Visible>False</Visible> |
| <ProductName>Microsoft XNA Framework Redistributable 3.0</ProductName> |
| <Install>true</Install> |
| </BootstrapperFile> |
| </ItemGroup> |
| |
| <Target Name="Bootstrapper"> |
| <GenerateBootstrapper |
| ApplicationFile="wix_sample_simple_example.msi" |
| ApplicationName="WiX Sample" |
| BootstrapperItems="@(BootstrapperFile)" |
| OutputPath=".\" |
| ComponentsLocation="HomeSite" |
| Culture="en" |
| /> |
| </Target> |
| |
| </Project> |
| |
Thanks!
|
|
-
|
|
|
For XNA 2.0, I'm using these for the bootstrapper:
| <ItemGroup> |
| <BootstrapperFile Include="Microsoft.Net.Framework.2.0"> |
| <ProductName>Microsoft .NET Framework 2.0</ProductName> |
| </BootstrapperFile> |
| <BootStrapperFile Include="Microsoft.Windows.Installer.3.1"> |
| <ProductName>Windows Installer 3.1</ProductName> |
| </BootStrapperFile> |
| <BootStrapperFile Include="Microsoft.XNARuntime.2.0"> |
| <ProductName>Microsoft XNA 2.0</ProductName> |
| </BootStrapperFile> |
| </ItemGroup> |
I decided not to require .NET 3.5 because of the large download impact it has on users that don't have it.
Since no one seems to have posted the bootstrapper for XNA 2.0, here what I came up with that seem to work:
Packages\XNA20Redist\product.xml
| <?xml version="1.0" encoding="utf-8"?> |
| <!-- Specifies a unique ID for the package.--> |
| <Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" |
| ProductCode="Microsoft.XNARuntime.2.0"> |
| |
| <RelatedProducts> |
| <DependsOnProduct Code="Microsoft.Net.Framework.2.0" /> |
| </RelatedProducts> |
| |
| <!-- Provides a list of all the files in the redistributable.--> |
| <PackageFiles CopyAllPackageFiles="false"> |
| <PackageFile Name="xnafx20_redist.msi" |
| PublicKey="3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9706D05744765CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E3958977609BE7AD77C1378D33142F13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C742A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B66B14A74BD26414B9C6114604E30C882F3D00B707CEE554D77D2085576810203010001" |
| |
| /> |
| </PackageFiles> |
| |
| <!-- Contains all of the detection logic that the Bootstrapper |
| should run prior to downloading and installing the component.--> |
| <InstallChecks> |
| <MsiProductCheck Property="XNAGSInstalled" |
| Product="{245F6C7A-0C22-4de0-8202-2AAA620A1D3A}"/> |
| </InstallChecks> |
| |
| <!-- Actions the Bootstrapper should perform while installing the component.--> |
| <Commands Reboot="Defer"> |
| <!-- Specific action to take during the installation process.--> |
| <Command PackageFile="xnafx20_redist.msi" |
| Arguments="" |
| EstimatedInstalledBytes="10000000" |
| EstimatedTempBytes="10000000" |
| EstimatedInstallSeconds="60"> |
| |
| <!-- Conditions under which the Bootstrapper should install, bypass, or fail the component installation.--> |
| <InstallConditions> |
| <BypassIf Property="XNAGSInstalled" Compare="ValueGreaterThanOrEqualTo" Value="3" /> |
| </InstallConditions> |
| |
| <!-- How to interpret the various codes that dotnetfx.exe might return after executing.--> |
| <ExitCodes> |
| <ExitCode Value="0" Result="Success" /> |
| <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> |
| </ExitCodes> |
| |
| </Command> |
| </Commands> |
| |
| </Product> |
| |
| |
Packages\XNA20Redist\en\package.xml
| <?xml version="1.0" encoding="utf-8"?> |
| <Package |
| xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" |
| Name="DisplayName" |
| Culture="Culture" |
| LicenseAgreement="eula.txt" |
| > |
| |
| <PackageFiles> |
| <PackageFile Name="eula.txt"/> |
| </PackageFiles> |
| |
| <!-- Defines a localizable string table for error messages.--> |
| <Strings> |
| <String Name="DisplayName">Microsoft XNA Framework Redistributable 2.0</String> |
| <String Name="Culture">en</String> |
| <String Name="GeneralFailure">A failure occurred attempting to install the Microsoft XNA Framework Redistributable 2.0</String> |
| </Strings> |
| |
| </Package> |
Packages\XNA20Redist\xnafx20_redist.msi <- copy from C:\Program Files\Microsoft XNA\XNA Game Studio\v2.0\Redist\XNA FX Redist
Packages\XNA20Redist\en\eula.txt <- copy from C:\Program Files\Common Files\microsoft shared\XNA\Framework\v2.0 (note: this is different than the XNA 2.0 SDK EULA)
|
|
-
-
- (1014)
-
premium membership
Team XNA
-
Posts
702
|
|
I created an XNA Framework Redistributable 2.0 bootstrapper package a while back as a proof-of-concept as we were working on the 3.0 bootstrapper package design and implementation. I created an installer for it that will install the bootstrapper meta-data files and copy the installer files from your XNA Game Studio 2.0 installation location (it enforces that you have a VS 2005 edition and XNA Game Studio 2.0 installed before it will let you install). If you'd like to try it out, you can download it and install it from this location. This was only created as a proof-of-concept, so it is use at your own risk (as stated in the EULA that comes with that installer). Let me know if you run into any issues though and I can try to help.
Thanks!
|
|
|