代码改变世界

智能移动项目打包发布经验交流

2007-08-26 08:34  ruinet  阅读(1612)  评论(1编辑  收藏  举报
        最近项目中使用到了PDA设备,开发智能移动程序在vs2005中开发,非常容易。你既可以用 C#,vb.net又可以使用c++开发。在连接数据库方面,你既可以使用本地的 SQL Mobile数据库,又可以Web Service连接远程数据,同时在vs2005中还支持直接连接SQL Server数据库。

我要和大家分享的是我在智能设备打包发布上的一些经验。

方法一:直接在项目名上右击选“部署”,vs2005就能自动将需要的文件部署到PDA设备中,这种方法最简单,这样部署程序运行肯定是没有问题的。但这样一个不好就是,如果要部署的设备多了,启不是很费力,同时当PDA重启还原了或程序出错了要重新安装岂不是又要打开工程进行部署。所以这样方法还是不实际。

方法二:打包发行,最实际的方法还是制作一个安装包。这样一个做好了,就可以给所以的设备使用。这种比起上种方法可能稍为复杂点,搞不好,制作好的安装程序还不能运行。通过的实际经验,我觉得制作安装包,要注意将所需要的文件大包进去,尤其如果你的程序对数据库的引用(SQL Mobile还是SQL Server),就算你对release目录下所以的文件大包进去都是没有用的。因为这样直接打包进去的依然不会在安装时进行注册。如果你想打包进某个dll文件,一定要COM注册(注意只要添加的文件才有此选项)

 

像这种打包方法有时很难知道,到底要添加那些文件,开始我也对此为难,因为PDA的空间都有限怎样只把有用的文件打包进去呢。同时SmartDevices\SDK目录下针对不同设备文件版本也不一样,不可能一次把每个都打包进去。当然你还可以一个的试到底哪个有用哪个没有用。最简单的一个方法就是,你按照第一种方法进行部署,在输出窗口看到底vs2005自动部署进去了那些文件,你会看到下面的内容:

正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\windowsce\wce400\armv4\NETCFV2.ppc.armv4.cab”
正在部署“F:\learn code\SMC_PDA\BLL\bin\Release\SMC_PDA.DAL.dll”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\wce400\ARMV4\sqlce30.ppc.wce4.armv4.CAB”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\wce400\ARMV4\sqlce30.repl.ppc.wce4.armv4.CAB”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\wce400\ARMV4\sqlce30.dev.chs.ppc.wce4.armv4.CAB”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Client\v2.0\wce400\ARMV4\sql.ppc.wce4.armv4.CAB”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Client\v2.0\wce400\ARMV4\sql.dev.chs.ppc.wce4.armv4.CAB”
正在部署“F:\learn code\SMC_PDA\SMC_PDA\Symbol.Barcode.Design.dll”
正在部署“F:\learn code\SMC_PDA\Utility\bin\Release\SMC_PDA.Utility.dll”
正在部署“F:\learn code\SMC_PDA\BLL\bin\Release\SMC_PDA.BLL.dll”
正在部署“F:\learn code\SMC_PDA\SMC_PDA\bin\Release\SMC_PDA.exe”
正在部署“D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\windowsce\diagnostics\System_SR_chs.cab”


这里它自动部署进去的是些安装包
SmartDevices\SDK下找到在cab安装包的同一个目录下也用对应的dll文件,如果可以直接把安装包复制到PDA上进行安装,也可以在你自己的安装包中添加对应的dll 文件但一定要选COM自注册。

如果你的PDA上要安装对个程序,你完全可以制作一个安装包将一些常用的文件打包进一个安装包中,这样在安装其他程序是就不用对需要的文件进行打包,这就叫一次打包多个利用,同时也节省空间。

在制作好安装包后,可以写一段注册表,让在PDA重启时自动安装,同时也可以自动启动。这种实现的方法大都通过注册表进行,(在一些PDA设备中重启会将系统还原到原始状态,所只的重启不是指一般的关机开机)

下面是我的一段注册表进行自动安装的:

; For SQL CE SDK

[HKEY_CURRENT_USER\Software\MyPrograms\Startup\Programs\Prog12]

"Name"="\windows\wceload.exe"

"Command"="/noaskdest \Application\MySetup.CAB"

"Continue"=dword:0

"ColdBootOnly"=dword:1

 

\Application\MySetup.CAB是要安装的文件路径,复制上面的代码到一个reg文件中,将这个reg文件放在Application目录下就可以了,同时记得将安装包设为只读,不然一次安装后它就会自动给删除。

自动启动指定程序:

1写一个注册表指定要自动启动run文件,所在的目录(将注册表文件依然放在Application目录下)

[HKEY_CURRENT_USER\Software\Symbol\Startup]
 "Path"="\\Application\\Startup"
     
 "NoSetup"=dword:1
2 如上注册表设定自动启动的文件夹为\\Application\\Startup\,然后在Startup目录下建一个run文件,在文件写如一句你要自动启动的文件的路径,如:
\Program Files\Pro\MyPro.exe


free web counter