为XNA制做安装程序(一)综述

如果客户机上安装了所需要的组件是最好不过的了,最简单的方法就是在Release模式下将bin目录中成生的文件打包,这样还可以做到绿色版本。

也可以使用visual studio自带的“发布”功能,或制做一个“安装和部署”的项目,再或者使用Wix做一个安装程序,虽然XNA游戏可以在Xbox和Zune中运行,但本文着重阐述XNA游戏在Windows平台下安装运行的情况。同时也为制做其它类型的安装程序做为参考。

XNA在国内还算是新兴的东西,而且运行条件也十分苛刻,要考虑操作系统、.net版本、XNA版本、DirectX版本、显卡配置等,现在我们想办法支持最多的情况。

XNA游戏的运行需要XP SP2以上的操作系统,且不支持服务器系统,需要至少.NET2.0的支持(而且要先安装.NET Framework才能安装XNA运行组件),DirectX9.0c以上的版本,显卡需要至少支持Shader Model 1.1(推荐支持Shader Model 2.0以上的显卡)。

 

操作系统支持情况(均为内置情况):

操作系统 .NET版本 XNA版本 DirectX版本 Shader Model(主要取决于显卡)
Server 2000 不内置 不支持 7.0 不支持
XP 不内置 不支持 8.1 1.1
XP SP1 不内置 不支持 9.0 2.0
XP SP2 不内置 不内置(支持) 9.0c 3.0
XP SP3 不内置 不内置(支持) 9.0c 3.0
Server 2003 1.1 不支持 8.1 1.1
Server 2003 SP1(R2) 1.1 不支持 9.0c 3.0
Vista 2.0 不内置(支持) 10 4.0
Vista SP1 2.0 不内置(支持) 10 4.0
Vista SP2 2.0 不内置(支持) 11 支持
Windows 7 3.5 不内置(支持) 11 支持

XNA不能运行在服务器版本,所以玩家使用的操作系统主要集中在XP(SP2,SP3),Vista和Win7。一般来说,能启动Aero的显卡就已经可以跑得起XNA做的视频游戏。
因为手上没有Windows 2008的任何版本做实验,所以这里没有列出来。

 

.NET主要版本(简体中文):

.NET版本 向下兼容情况 可再发行组件包大小(简体中文x86) XNA
1.1 - 23.2M 不支持
2.0 不兼容1.1 22.4M(语言包加其它总计约28M) 支持
3.0 兼容2.0 50.3M 支持
3.5 兼容2.0,3.0 218M 支持
3.5 SP1 兼容2.0,3.0 231.5M(完整安装包) 支持
4.0 兼容2.0,3.0,3.5 未发布正式版 未知

1.1不被后面的版本兼容,2.0做为后续版本的基础被完全兼容,而且XNA安装的最低要求是2.0,所以最好以2.0为基础进行开发,3.5的可再发行组件包太大也是一个不推荐选用的原因,可以等到Windows7完全普及再做考虑。总的来说.NET2.0和XNA的内置函数功能已经够用。

 

XNA主要版本(英文):

XNA版本 向下兼容情况 可再发行组件包大小 发布时间 开发平台
Express - - 2006年12月11日 Visual Studio 2005
Express 1.0 - 1.9M 2007年4月24日 Visual Studio 2005
2.0 不兼容1.0 2.1M 2007年12月13日 Visual Studio 2005
3.0 不兼容2.0 7.6M 2008年8月30日 Visual Studio 2008
3.1 兼容3.0 7.3M 2009年3月24日 Visual Studio 2008

如果您是从现在才开始开发XNA程序,那就从最新的3.1开始吧。1.0已经成为历史,2.0的游戏虽然可以在编写项目时基本无损的升级到3.0或3.1 ,但是由于兼容性不好的问题,安装了3.0的玩家还需要再安装2.0才能玩由2.0开发的游戏,对用户来说相当的不便。
3.1可以兼容3.0的功能并有很多有用的扩充,可再发行组件包也小了300K,推荐使用。然后就是希望所有XNA2.0的游戏作者都将自己的作品升级到3.1。

下面简单计算一下各种情况下用户所需要的组件及附加安装包大小。

XNA游戏 附加安装包容量
XNA2.0+.NET2.0 2.1+28=约30M
XNA3.0+.NET2.0 7.6+28=约36M
XNA3.0+.NET3.5 7.6+231.5=约240M
XNA3.1+.NET2.0 7.3+28=约36M
XNA3.1+.NET3.5 7.3+231.5=约240M

 

综上所述笔者推荐游戏开发时使用XNA3.1+.NET2.0的架构,XNA框架是所有平台用户必须装的,就选用较新又较小的XNA3.1版本,对于.NET Framework,为照顾XP用户,使用较小容量的.NET2.0版本。所以附加安装包大约为36M,再考虑一下游戏自身的大小,精品游戏在100M以内,附加包占用3分之1的容量基本是可以忍受的。相反如果100M的游戏,附加安装包就有240M,用户也许会无法忍受。

关于显卡,一般来说DirectX 8.0以上都可以运行XNA游戏,但某些老显卡因为配置太低无法开启Shader功能,也不能运行XNA游戏或开发。虽然 ATI 7xxx 系列和 NVIDIA Geforce2/Geforce4 MX 系列显卡也有一定的像素管线,但是它们不够灵活,不能运行Shader 1.0。Shader Model 1.1是游戏开发(渲染)的第一个标准,在DirectX8.0首次被支持。以下部分显卡支持型号仅供参考:

 

显卡型号与支持情况:

Pixel Shader 版本 DirectX版本

3DLabs

ATI Intel

Matrox

NVIDIA S3 Graphics

SiS

XGI

1.0/1.1

8.0 - - - - GeForce 3 series - Xabre-Series -
1.2 8.0a Wildcat VP - - - - - - -
1.3 8.0a - - - Parhelia series GeForce 4 Ti/Go series - Mirage 2 -
1.4 8.1 -

Radeon R200
(8500-9250)

- - - - - Volari V3 series(except V3XT)
2.0 9.0 Wildcat Realizm Radeon R300
(9500-9800, X300-X600)
Intel GMA
900, 950, 3000, 3100
- - DeltaChrome,GammaChrome,Chrome S2x series Mirage 3, Mirage 3+ Volari V3XT, Volari V5 series, Volari V8 series, Volari 8300, Volari XP10
2.0a 9.0a - - - - GeForce FX series - - -
2.0b 9.0b - Radeon R420
(X700-X850)
- - - - - -
3.0 9.0c - Radeon R520
(X1300-X1950)

Intel GMA
X3000

- GeForce 6 series,GeForce 7 series - - -
4.0 10 - Radeon R600
(HD 2400-HD 2900)
Intel GMA
X3100, X3500
- GeForce 8 series,GeForce 9 Series,GeForce 200 Series,Quadro FX 1700 - Mirage 4 -
4.1 10.1 - Radeon R600
(HD 3xxx)
,
Radeon R700
(HD 4xxx)
Intel GMA
500
- - Chrome 400 Series - -

显卡不支持无论对于XNA玩家还是开发者来说都是一个悲剧。

 

最理想的状态应该是用户已经安装了.NET3.5和XNA3.1,这样就可以发布绿色版本。
如果你建立的项目是.NET3.5的架构,需要首先在项目属性里设置应用程序的目标Framework的版本为2.0,某些项目可能不能正常转换,可能要修改一些代码。查看项目引用中的Microsoft.Xna.Framework文件版本就知道是XNA3.0还是3.1,如果是3.0的,项目的右键菜单里会有一个Upgrade Solution选项,点击升级即可:

2009111101

然后将Visual Studio的解决方案配置修改为“Release”,这样可以以发布状态进行编译而不是调试状态:

2009111001

在解决方案管理器中,右键单击项目根目录的名称,点击“生成”或是在此项目中按F6:

2009111002

当左下角的状态栏或是输出窗口(Ctrl+W,O)中显示生成成功。上图中有人会注意有一项:Package as XNA Creators Club Game,这的确也是XNA游戏发布的一个打包方式,点击后VS08会将你的项目文件生成一个单一的文件*.ccgame,这种文件格式并不被windows系统默认支持,装了XNA可再发行组件包也不能使用,必须要安装XNA Game Studio才能打开,其中也不包含.NET和XNA可再发行组件包。可以把它看做是一种官方的压缩格式,可以被Xbox和Zune识别,也可以上传到官方网站发布游戏。但在这里不使用这种方法。

2009111003

打开项目所在目录:项目目录\bin\x86\Release下,将其中的.exe文件和Content目录复制出来打包就可以发布了,这里具体需要使用的文件和目录会因你的项目不同而有所出入,.application,.exe.config,.manifest是供发布使用的文件,稍后我们会遇到,.pdb文件是供调试使用的,都不用发布出去。

2009111004

当然这只是种临时的解决方法,我们在调试的时候不必每次都要安装卸载,下一篇将以一个宝石游戏的发布为例,开始讨论如何做一个包含.NET和XNA可再发行组件包的安装程序的步骤。

 

 

希望本文能对您有所帮助。

未完待续

 

 

参考:

ccgame格式:http://msdn.microsoft.com/zh-cn/library/bb464158(en-us).aspx

Microsoft XNA Framework Redistributable 3.1

Microsoft .NET Framework 2.0 版可再发行组件包 (x86)

posted @ 2009-11-11 21:16  风海迷沙  阅读(3851)  评论(5编辑  收藏  举报