为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.11.1
XP SP1不内置不支持9.02.0
XP SP2不内置不内置(支持)9.0c3.0
XP SP3不内置不内置(支持)9.0c3.0
Server 20031.1不支持8.11.1
Server 2003 SP1(R2)1.1不支持9.0c3.0
Vista2.0不内置(支持)104.0
Vista SP12.0不内置(支持)104.0
Vista SP22.0不内置(支持)11支持
Windows 73.5不内置(支持)11支持

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

 

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

.NET版本向下兼容情况可再发行组件包大小(简体中文x86)XNA
1.1-23.2M不支持
2.0不兼容1.122.4M(语言包加其它总计约28M)支持
3.0兼容2.050.3M支持
3.5兼容2.0,3.0218M支持
3.5 SP1兼容2.0,3.0231.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.9M2007年4月24日Visual Studio 2005
2.0不兼容1.02.1M2007年12月13日Visual Studio 2005
3.0不兼容2.07.6M2008年8月30日Visual Studio 2008
3.1兼容3.07.3M2009年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.02.1+28=约30M
XNA3.0+.NET2.07.6+28=约36M
XNA3.0+.NET3.57.6+231.5=约240M
XNA3.1+.NET2.07.3+28=约36M
XNA3.1+.NET3.57.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

ATIIntel

Matrox

NVIDIAS3 Graphics

SiS

XGI

1.0/1.1

8.0----GeForce 3 series-Xabre-Series-
1.28.0aWildcat VP-------
1.38.0a---Parhelia seriesGeForce 4 Ti/Go series-Mirage 2-
1.48.1-

Radeon R200
(8500-9250)

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

Intel GMA
X3000

-GeForce 6 series,GeForce 7 series---
4.010-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.110.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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值