Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9728282
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-04-23 21:53:00

开发和部署 Pocket PC 安装程序

原著:Ralph Arvesen
Vertigo Software, Inc.
编译:

原文出处:

应用

Microsoft® .NET Compact Framework 1.0

Microsoft Visual Studio® .NET 2003

概要

  了解如何创建独立的 .msi 文件,该文件从桌面运行以便将应用程序安装到不同的 Pocket PC 设备上。开发过程是自动化的,所以能轻松创建和打包所需组件到一个 .msi 文件。示例代码用 C# 和 VB.NET 语言编写。

下载源代码

内容提要



下面所列为开发和部署 Pocket PC 应用程序的要点:

  • Pocket PC 设备有不同的处理器类型(如:ARM,SH3,MIPS 等)。
  • 应用程序用 .Cab 文件格式部署。
  • Cab 向导(cabwiz.Exe)生成特定处理器的.cab文件。
  • WinCE 应用程序管理器从桌面部署和安装.cab文件到 Pocket PC 设备上。

我们首先论述部署和卸载过程,然后是开发和开发过程的自动化。



  一般用户可以通过拷贝和运行合适的.cab文件到他们的设备上来安装 Pocket PC 应用程序,但是有一个更好的解决方案是从桌面运行 .msi 文件 来安装应用程序到其设备。该.msi文件检测设备类型,拷贝正确的.cab文件到设备上,然后运行这个.cab文件安装应用程序。所有的过程都对用户透明,用户只要 在其桌面运行.msi文件,应用程序就可以被自动安装到 Pocket PC 上。

下面是基于 .msi 部署涉及的步骤:

  • 用户在他们的桌面运行 .msi 文件。
  • msi 文件解包成特定处理器的 .cab 文件,setup.ini 和一个定制的安装程序组件。
  • 安装过程中安装程序组件被调用,通过运行WinCE应用程序管理器(WinCE Application Manager)将正确的 .cab 文件部署和安装到设备上。
  • Setup.ini 文件向 WinCE 应用程序管理器提供应用程序的描述信息。

下图说明了与部署过程相关的各部分,接着是每个部分的描述信息。


图一 包含在部署过程中的各个模块

.msi 文件
  .msi文件是可以从桌面安装你的 Pocket PC 应用程序的独立文件。用户运行.msi文件,它解包成特定处理器的.cab文件,一个自定义安装组件,和一个setup.ini文件。

.cab文件

  通过运行.cab文件把Pocket PC应用程序安装在设备上。这些文件是自解压文件,包含有安装指令和应用程序所需的所有文件。这些文件是针对不同的处理器的,所以对于每一种应用程序支持的处理器需要单独的.cab文件。

安装组件
  这是一个在安装过程中被调用的自定义组件。它运行WinCE应用程序管理器,通过它拷贝和安装正确的.cab文件到设备上。

Setup.ini文件
  向WinCE应用程序管理器描述应用程序信息的初始化文件,在WinCE应用程序管理器安装应用程序的过程中是必不可少的。

WinCE应用程序管理器
  WinCE应用程序管理器位于用户的桌面系统上,用于在Pocket PC设备上安装和卸载应用程序。下图显示应用程序管理器提示用户将要安装示例应用程序在Pocket PC设备上。


图二 从桌面上安装一个Pocket PC应用程序



  .cab文件在Pocket PC上存储安装信息,因此应用程序可以被卸载。用户可以在Pocket PC上直接卸载应用程序,或者从桌面上卸载。用Pocket PC卸载应用程序,用户可以选择应如下图所示的应用程序设置中的删除应用程序。


图三 使用Pocket PC卸载一个应用程序

  就象安装时一样,用户也可以从他们的桌面上卸载应用程序。从控制面板应用程序下的添加删除程序选择要卸载的程序,点击删除按钮。这个过程调用自定义安装组件,由它使WinCE应用程序管理器运行在卸载模式(不需要指定一个Setup.Ini文件)。用户去掉应用程序上的对勾,点击OK去卸载Pocket PC上的应用程序。


图四 从桌面系统上卸载一个PocketPc程序



  开发安装程序的目标是用最小的工作量生成一个.msi文件(如果可能的话,点一下鼠标)。首先让我们看一下开发安装程序过程所涉及的各部分:

  • BuildCab.bat通过运行cab向导启动安装过程
  • 信息文件(.inf)向cab向导提供应用程序描述
  • cab向导根据 .inf 文件所指出的处理器类型生成不同的.cab文件
  • .cab文件,一个自定义安装组件和一个Setup.ini文件被打包成一个.msi文件

下面的图表说明与安装开发过程相关的各部分,接下来是每个部分的描述信息。


图五 与安装开发过程的相关部分

BuildCab.bat
  通过运行Cab向导工具生成特定处理器的.cab文件。当你从生成菜单上选择生成cab文件时,Visual Studio生成一个模板BuildCab.Bat文件。让Microsoft? Visual Studio?生成这个文件,然后拷贝它到一个不同的路径,然后做一些更改是一个好办法。很有可能,仅有的改变是为.cab和log文件指定一个新的路径。示例中的BuildCab.Bat如下所示。

"C:\Program Files\Microsoft Visual Studio .NET 

2003\CompactFrameworkSDK\v1.0.5000\Windows CE\..\bin\..\bin\cabwiz.exe" 

"c:\program files\pocketpc deploy 

sample\Source\CS\PocketApp\BuildCabs\PocketApp_PPC.inf" /dest 

"c:\program files\pocketpc deploy 

sample\Source\CS\PocketApp\BuildCabs\Cabs" /err CabWiz.PPC.log /cpu 

ARMV4 ARM SH3 MIPS X86 WCE420X86

信息文件(.inf)
  Microsoft Windows? CE .NET .inf文件向cab向导指定了安装设置和应用程序文件。如buildcab.bat文件,当生成cab文件被选择时,Visual Studio生成一个模板.inf文件。你应该首先用Visual Studio生成这个文件,然后拷贝到另外的路径去做一些更改。这个文件通常需要很小的修改;通常修改Provider的名称就可以了。
  Visual Studio生成一个.inf文件包含对vsd_setup.dll的引用。这个dll是用于版本检查以及假如Pocket PC没有正确的安装.Net精简板,报告这个信息。把它包含在你的应用程序中是一个好注意,但为了更清晰,我们把它从示例代码中移除了。
  例子程序中的.inf如下所示。你可以访问 获取多信息。

[Version]

Signature="$Windows NT$"

Provider="Sample Company"

CESignature="$Windows CE$"



[CEStrings]

AppName="PocketApp"

InstallDir=                                   
阅读(470) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~