为Pocket PC应用程序生成CAB 文件

2010-08-28 10:50:01来源:西部e网作者:

演练:为设备项目生成自定义 CAB 文件

在本演练中,您将生成一个为满足用户的特殊需要而自定义的压缩文件 (CAB)。本演练通过指导您完成下列任务,提供了一个点对点方案:

  • 使用 Visual Basic .NET 或 Visual C# 创建一个简单的 Pocket PC 应用程序
  • 自动生成一个 CAB 文件以提供 CAB 模板
  • 修改自动生成的信息文件 (.inf)。
  • 用修改过的 .inf 文件生成自定义 CAB 文件
  • 在模拟器或物理设备上安装自定义 CAB 文件

为了尽量减少路径问题,本演练使用 Visual Studio .NET 为其项目指定的默认路径:My Documents\Visual Studio Projects。如果希望为您的项目文件选择其他位置,请在演练说明中做相应的更改。

本演练还假定物理设备上没有安装 .NET Framework 精简版。如果已安装,则可以跳过安装过程。

选择目标设备

您可以针对模拟器或物理设备执行本演练。甚至可以在演练期间来回切换。为了确保每次部署解决方案时系统提示您选择设备,请完成以下过程。

在部署时提示选择设备

  1. 在“工具”菜单上,单击“选项”,然后单击“设备工具”。
  2. 选中“部署设备项目前显示设备选项”复选框。

创建应用程序

首先生成一个简单的 Windows 窗体应用程序,然后使用 Pocket PC 模拟器测试它。以后需要使用该应用程序生成和自定义要分发的 CAB 文件。

这部分包括五个主要任务:

  • 创建使用 Windows 窗体的设备项目
  • 向窗体添加控件
  • 向控件添加事件处理
  • 选择模拟器作为运行项目的设备
  • 生成应用程序并将其部署到模拟器

创建使用 Windows 窗体的设备项目

  1. 在 Visual Studio .NET 的“文件”菜单上,指向“新建”,然后单击“项目”。
  2. 在“新建项目”对话框的“项目类型”下,单击“Visual Basic 项目”或“Visual C# 项目”。

    可以使用这两种语言中的任何一种进行本演练。

  3. 在“名称”框中键入 CustomCABSample
  4. 在“模板”下,双击“智能设备应用程序”。
  5. 在智能设备应用程序向导中,单击上面窗格中的“Pocket PC”和下面窗格中的“Windows 应用程序”。

向窗体添加控件

  1. 如果没有显示 Windows 窗体设计器,在“视图”菜单上单击“设计器”。
  2. 从“工具箱”中,将一个 Button 控件拖动到窗体上。
  3. 右击 Button 控件,然后单击“属性”。
  4. 在“属性”窗口中,键入 Say Hello,然后按 ENTER 键设置 Text 属性。

为 Button 控件添加事件处理

  1. 双击窗体上的按钮。

    随即打开代码编辑器,并且插入点位于事件处理程序中。

  2. 插入以下 Visual Basic 代码:
    MessageBox.Show ("Hello, World!")

    - 或 -

    插入以下 C# 代码:

    MessageBox.Show ("Hello, World!");

生成并测试应用程序

  1. 在“调试”菜单上单击“启动”。
  2. 在“部署”对话框中,选择“Pocket PC 模拟器”,然后单击“部署”。
    注意   如果已选择了目标设备并清除了“显示选项”复选框,则“部署”对话框不会打开。在本演练中应该选择“显示选项”复选框。

    输出窗口、状态栏和模拟器屏幕上显示进度消息。

  3. 当应用程序在模拟器上运行时,点击 Say Hello 按钮以确保显示“Hello, World!”,然后关闭应用程序。
  4. 在进入本演练的下一部分之前关闭模拟器。
  5. 响应模拟器“关闭”对话框中的提示时,选择“关闭模拟器”,然后在指出已失去远程连接的消息框中单击“确定”。

生成自动 CAB 文件作为模板

每次打开智能设备项目时,Visual Studio .NET 都提供一个生成 CAB 文件的菜单命令。您不必创建单独的 Visual Studio 部署项目。在这部分,您将使用 Visual Studio 提供的默认值生成 CAB 文件,然后关闭解决方案以准备自定义由 CAB 向导 (Cabwiz.exe) 使用的 .inf 文件。

生成解决方案的 CAB 文件

  1. 项目打开时,单击“生成”菜单上的“生成 Cab 文件”(或者单击“设备”工具栏上的“生成 Cab 文件”按钮)。

    输出窗口显示过程信息,包括生成消息、存储 CAB 文件的目录和所有相关的 CAB 文件及其位置。

  2. 关闭 CustomCABSample 解决方案。

修改 .inf 文件

现在找到并修改 .inf 文件,Cabwiz.exe 用它来生成解决方案的默认 CAB 文件。后面会使用在这部分中自定义的 .inf 文件再次运行 Cabwiz.exe。您对 .inf 文件的改动较小,但它们演示了如何在分发的 CAB 文件中进行更重要的更改。有关详细的参考信息,请参见用于设备的自定义 CAB 文件

可以在任何文本编辑器中编辑 .inf 文件。本演练中使用的是 Visual Studio 集成开发环境 (IDE) 中的代码和文本编辑器。

修改 .inf 文件

  1. 在“文件”菜单中,指向“打开”,然后单击“文件”。
  2. 在“打开文件”对话框中,定位到 \My Documents\Visual Studio Projects\CustomCABSample\obj\Debug。
  3. 打开文件 CustomCABSample_PPC.inf。

    .inf 文件在 Visual Studio 代码和文本编辑器中打开。

  4. 在最后一节(标为 [Shortcuts])中,将第一个参数 (CustomCABSample) 更改为 Woodgrove Bank。

    这是将出现设备上的“程序”之下的字符串。

    现在这节的内容是

    [Shortcuts]
    Woodgrove Bank,0,CustomCABSample.exe
  5. 用新名称保存修改后的文件,方法是在“文件”菜单上单击“保存 CustomCABSample_PPC.inf 为”,并在“文件另存为”对话框中将新文件命名为 WoodgroveBank_PPC.inf。

    为容易识别,在标识 Pocket PC 平台的信息文件时通常追加 _PPC。

  6. 在“文件”菜单上,单击“关闭”关闭 WoodgroveBank_PPC.inf 文件。

    好的做法是备份创建的所有自定义 .inf 文件,但在本演练中不需要这样做。

生成修改后的 CAB 文件

现在可以从 Windows 命令行运行 Cabwiz.exe,使用您创建的修改后的 .inf 文件生成自定义 CAB 文件(为支持的每个处理器生成一个单独的 CAB 文件)。您不是在命令行中键入命令,而是复制、修改然后运行 Visual Studio 用来生成自动 CAB 文件的批处理文件。有关 Cabwiz.exe 语法的详细参考信息,请参见用于设备的 Cabwiz.exe

修改批处理文件

  1. 在“文件”菜单中,指向“打开”,然后单击“文件”。
  2. 在“打开文件”对话框中,定位到 \My Documents\Visual Studio Projects\CustomCABSample\obj\Debug。
  3. 打开文件 BuildCab.bat。

    批处理文件在 Visual Studio 代码和文本编辑器中打开。

  4. 在指定要使用的 .inf 文件的命令行参数中,将 .inf 文件名由 CustomCABSample_PPC.inf 改为 WoodgroveBank_PPC.inf。
  5. 用新名称保存修改后的文件,方法是单击“文件”菜单上的“保存 BuildCab.bat 为”并在“文件另存为”对话框中将新文件命名为 BuildWoodgroveBankCab.bat。
  6. 在“文件”菜单上,单击“关闭”关闭 BuildWoodroveBankCab.bat 文件。
  7. 在 Windows 资源管理器中,定位到 My Documents\Visual Studio Projects\CustomCABSample\obj\debug。
  8. 双击 BuildWoodgroveBankCAB.bat。

    在 My Documents\Visual Studio Projects\CustomCABSample\cab\debug 中出现几个处理器的 WoodgroveBank_PPC CAB 文件。

在目标设备上安装 CAB 文件

不论目标设备是模拟器还是物理设备,安装应用程序的任务顺序都是一样的。下表概括了整个过程:

  1. 如果没有安装 .NET Framework 精简版,在目标设备上安装它。
  2. 将应用程序 CAB 文件复制到目标设备。

    模拟器和物理设备的文件复制方法不同,本节后面对此有详细介绍。

  3. 打开 CAB 文件,这会使 CAB 文件将内容解压缩到各自 .inf 文件中指定的存储区域。
  4. 打开应用程序。

以下过程指导您完成模拟器或物理设备上的安装过程。

  • 要通过在物理设备上安装 CAB 文件完成本演练,必须知道处理器的类型,因为您选择的 CAB 文件是为该处理器生成的。本演练使用 SH3 处理器的 CAB 文件作为示例。如果您的设备是在 MIPS 或 ARM 处理器上运行的,请在继续本演练的过程中进行相应的选择。

    如果无法确定设备的处理器类型,通常可以从设备中检索该信息。此过程可能因制造商而异。在 Pocket PC 上可以使用以下过程。在“开始”菜单上,点击“设置”。在“系统”选项卡上点击“关于”。在“版本”选项卡上,查看提供的信息。

  • 要通过在模拟器上安装完成本演练,请参见本节后面的“将文件复制到模拟器”。

将文件复制到物理设备

现在可以将您生成的自定义 CAB 文件复制到挂接到开发计算机上的设备。该设备必须使用 ActiveSync 与开发计算机相连。如果设备上尚未安装 .NET Framework 精简版,可以复制 CAB 文件以安装它。

将所需文件复制到物理设备

  1. 使用 Windows 资源管理器将 WoodgroveBank_PPC.SH3.CAB 文件(或适合您的设备的 CAB 文件)从 My Documents\Visual Studio Projects\CustomCABSample\cab\Debug 复制到 Mobile Device\My Pocket PC\Temp 下。如果设备处理器不是 SH3,选择正确的备用 CAB 文件。
  2. 如果 ActiveSync 中出现有关文件转换的消息,请单击“确定”。
  3. 如果设备上尚未安装 .NET Framework 精简版,请将 Compact FrameworkSDK\V1.0.5000\Windows CE\wce300\sh3\netcf.core.ppc3.sh3.cab 从 Visual Studio 安装目录复制到 Mobile Device\Pocket PC\Temp 下。如果设备处理器不是 SH3,请从 \wce300 下的文件夹中选择正确的备用 CAB 文件。

解压缩 CAB 文件的内容并安装应用程序

  1. 在设备的“开始”菜单上,点击“程序”,然后点击“文件资源管理器”。
  2. 在顶部的设备菜单栏上,定位到“My Device\Temp”。

    应出现 WoodgroveBank_PPC.X86 和 Netcf.core.ppc3.x86 CAB 文件

    为方便起见,本演练使用设备的 Temp 文件夹下载 CAB 文件,但是实际上可以使用任何文件夹。CAB 文件将其内容解压缩到 .inf 文件已指定的存储区域,并在完成解压缩过程后自动移除它们。

  3. 点击 Netcf.core.ppc3.x86.cab 文件以安装 .NET Framework 精简版。

    在解压缩您的应用程序之前必须先执行此解压缩。如果您的设备上安装了 .NET Framework 精简版,可以跳过这一步。

    出现进度消息,指出正在安装 Framework。

  4. 点击 WoodgroveBank_PPC.X86 CAB 文件以安装您的应用程序。

    随即出现类似的进度消息。

  5. 在设备上的“程序”之下,点击 Woodgrove Bank 以验证该应用程序已正确安装。

将文件复制到模拟器

现在可以将自定义 CAB 文件和包含 .NET Framework 精简版的 CAB 文件复制到模拟器。由于模拟器只存在于内存中,所以将 CAB 文件复制到模拟器没有将文件复制到物理设备那样简单。

开发应用程序时,实际上是通过直接部署应用程序将其安装在模拟器上,而不是使用 CAB 文件。但是,在将 CAB 文件分发到客户端之前,通过生成 CAB 文件并将其复制到模拟器,可以使用模拟器测试对 CAB 文件所做的任何自定义。

设置开发计算机进行复制

  1. 创建一个名为 WoodgroveBankTest 的共享文件夹。
  2. 将自定义的 CAB 文件 (My Documents\Visual Studio Projects\CustomCABSample\cab\Debug\WoodgroveBank_PPC.X86.CAB) 复制到此共享文件夹。
  3. 将适当的 .NET Framework 精简版 CAB 文件 (CompactFrameworkSDK\v1.0.5000\Windows CE\wce300\x86\netcf.core.ppc3.x86.cab) 复制到此共享文件夹。

将 CAB 文件复制到模拟器

  1. 在“工具”菜单上,单击“连接到设备”。
  2. 选择“Pocket PC 模拟器”,然后单击“连接”打开模拟器。
  3. 在模拟器的“开始”菜单上,点击“程序”,然后点击“资源管理器”。
  4. 单击模拟器屏幕底部的“网络共享”图标。
  5. 在“打开”对话框中,键入开发计算机的名称,然后点击“确定”。

    出现一条消息,指出模拟器正在连接到服务器。

    注意   如果出现消息报告网络中已存在同名设备,必须更改模拟器的设备 ID。在模拟器的“开始”菜单上点击“设置”。在“系统”选项卡上点击“关于”。在“设备 ID”选项卡上,更改设备名称并尝试再次连接到共享的文件夹。
  6. 在“网络登录”框中,键入您的用户名、密码和计算机的域(如果适用),然后点击“确定”。
  7. 点击 WoodgroveBankTest 共享文件夹。
  8. 点击 WoodgroveBank_PPC.X86 文件,然后按住 CTRL 键并点击 Netcf.core.ppc3.x86 文件,以便同时选定这两个文件。
  9. 在所选区域上单击并按住鼠标按钮,直到红点动画完成后出现一个菜单,然后点击“复制”。

将 CAB 文件粘贴到设备的 Temp 目录中

  1. 点击模拟器屏幕顶部的“我的设备”图标。
  2. 在顶部的设备菜单栏上,定位到“我的设备\Temp”。
  3. 在“编辑”菜单上,点击“粘贴”。

    现在 Temp 文件夹中应出现 WoodgroveBank_PPC.X86 和 Netcf.core.ppc3.x86 CAB 文件。

    本演练使用 Temp 文件夹下载 CAB 文件,但实际上可以使用任何文件夹。CAB 文件将其内容解压缩到 .inf 文件已指定的目标位置,并在完成解压缩过程后自动移除它们。

解压缩 CAB 文件的内容

  1. 点击 Netcf.core.ppc3.x86.cab 文件以安装 .NET Framework 精简版。在解压缩您的应用程序之前必须先执行此解压缩。

    出现进度消息,指出正在安装 .NET Framework 精简版。

  2. 点击 WoodgroveBank_PPC.X86 CAB 文件以安装您的应用程序。

    随即出现类似的进度消息。

  3. 在设备上的“程序”之下,点击 Woodgrove Bank 以验证该应用程序已正确安装。

请参见

分发设备应用程序 | 自动生成 CAB 文件 | 用于设备的 .inf 文件 | 智能设备演练 | 将文件复制到目标设备 | 设备上的应用程序安装

原文:http://msdn.microsoft.com/library/CHS/dv_evtuv/html/etwlkGeneratingCustomCABFilesForDeviceProjects.asp

关键词:VS.NET