在vs2008工程中制作cab包

内容转自MSDN

 

1.首先,制作自己的智能设备工程

2.添加cab工程:

 

为解决方案添加智能设备 CAB 项目

  1. 打开现有的智能设备项目,并确保“解决方案资源管理器”可见。

  2. “文件”菜单上指向“添加”,然后单击“新建项目”

    出现“添加新项目”对话框。

  3. “项目类型”窗格中,展开“其他项目类型”,再单击“安装和部署”

  4. “模板”窗格中单击“智能设备 CAB 项目”

    这是唯一可用于智能设备的 CAB 项目类型。其他项目类型仅用于桌面解决方案。

  5. “名称”框中,键入 CABProject,然后单击“确定”

    该 CAB 项目随即添加到解决方案中,并显示在“解决方案资源管理器”中。现在显示“文件系统编辑器”的两个窗格。

 

更改产品名称和其他项目属性

  1. “解决方案资源管理器”中单击“CABProject”(如果尚未选定)。

  2. “视图”菜单上单击“属性窗口”,或打开“属性”窗口。

  3. 在属性网格的“ProductName”字段中,将值更改为“MyProduct”

    “ProductName”属性的值决定了在文件夹名称和“添加或删除程序”对话框中为应用程序显示的名称。

    • 还可以使用此窗口更改制造商的名称,以及指定操作系统的最低和最高版本。

    • 可以将“OSVersionMin”属性设置为 4.21,以指示您的 Pocket PC 应用程序具有屏幕方向感知功能。但是,将此属性设置为 4.21 会阻止应用程序安装到基于 Windows Mobile 2003 或更早版本的 Pocket PC 上。若要允许在此类设备上进行安装,并通知较新的设备该程序具有屏幕方向感知功能,则必须手动修改 .inf 文件,将“BuildMax”属性设置为下列值之一:

      0xA0000000,指示应用程序支持方形屏幕(240x240 像素)

      0xC0000000,指示应用程序支持屏幕旋转

      - 或 -

      0xE0000000,指示应用程序支持方形屏幕和屏幕旋转。

      有关更多信息,请参见位于 MSDN 上的文章 Developing Screen Orientation-Aware Applications(开发识别屏幕方向的应用程序)。

    • 对于基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案,“Compress”属性和“NoUninstall Device Deployment”属性必须为 false。请注意,对于配备了 Compact Framework 2.0 的设备,此选项可以设置为 true

    • 如果您使用的是 Windows CE 安装程序 DLL,使用此属性网格可以指定文件名和位置。有关 Windows CE 安装程序 DLL 的更多信息,请参见 Pocket PC 或 Smartphone SDK 文档。

更改 CAB 文件的名称并添加身份验证

  1. “解决方案资源管理器”中右击“CABProject”,然后单击“属性”

    出现 CAB 项目的“属性页”对话框。在“输出文件名”框中,将 CAB 文件的名称和路径更改为Debug/MyApp.cab,然后单击“确定”

  2. 还可以使用此属性页为项目添加身份验证。身份验证对于 Smartphone 解决方案是必需的,但是在基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案上,身份验证不受支持。

为 CAB 项目添加设备项目应用程序

  1. “文件系统编辑器”的左窗格中,单击“应用程序文件夹”,以指定在后续步骤中选择的文件将安装到目标设备上的此文件夹中。

    如果看不到“文件系统编辑器”,请在“解决方案资源管理器”中右击 CAB 项目名称,单击“视图”,再单击“文件系统”

  2. 在 Visual Studio 中的“操作”菜单上指向“添加”,然后单击“项目输出”

  3. “添加项目输出组”对话框中,从“项目”下拉列表中选择您的智能设备项目。

  4. 从输出列表中选择“主输出”,然后单击“确定”

为设备项目应用程序创建快捷方式

  1. “文件系统编辑器”的右窗格中,选择“<应用程序项目名称> 的主输出”

  2. “操作”菜单上单击“创建 <应用程序项目名称> 的主输出的快捷方式”

    此命令将在“输出”项下面添加一个“快捷方式”项。

  3. 右击该“快捷方式”项,单击“重命名”,然后将该快捷方式重命名为适合于快捷方式的名称。

将此快捷方式移动到“开始”菜单或 Programs 文件夹中

  1. “文件系统编辑器”的左窗格中,右击“目标计算机上的文件系统”,指向“添加特殊文件夹”,然后单击“Start Menu 文件夹”“Programs 文件夹”

  2. 将此快捷方式从“应用程序文件夹”拖动到“Start Menu 文件夹”“Programs 文件夹”

添加注册表项

  1. “解决方案资源管理器”中单击 CAB 项目。

  2. “视图”菜单上指向“编辑器”,然后单击“注册表”

  3. “注册表编辑器”中,右击 HKEY_CURRENT_USER,然后单击“新建项”

  4. “注册表编辑器”中显示“新建项”项时,将其重命名为“SOFTWARE”

  5. 右击此新项,指向“新建”,然后单击“项”

  6. “注册表编辑器”中显示“新建项”项时,将其重命名为“MyCompany”

  7. 右击“MyCompany”项,然后单击“属性窗口”

    “名称”值已更改为“MyCompany”

生成 CAB 文件

  1. “生成”菜单上单击“生成 CABProject”

    - 或 -

    “解决方案资源管理器”中右击“CABProject”,再单击“生成”

  2. “文件”菜单上单击“全部保存”

    Smartphone 解决方案的 CAB 文件在部署到最终用户的设备上之前必须进行数字签名。基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案不支持数字签名。

将 CAB 文件部署到设备上

  1. “Windows 资源管理器”中定位到存储此解决方案的文件夹。可以在解决方案的“CABProject/Release”文件夹中找到此 CAB 文件。

  2. 将 CAB 文件复制到使用 ActiveSync 4.0 或更高版本进行连接的设备上。

    当用户在设备上的“资源管理器”中点击此 CAB 文件名时,Windows CE 将解开该 CAB,并将应用程序安装到设备上。

    有关更多信息,请参见 Smartphone 和 Pocket PC SDK 文档。

 

 

 

 

在使用中发现一些问题如下:

1.用VS2008打包CAB布支持中文字符

比如我定义 Default字符串值为 URL:zd协议,就报错;去掉中文就OK

错误如下

Error: The INF file contains Unicode characters that could not be converted correctly to ANSI

 

2.不支持带空格参数的值

比如我定义 Default字符串值为 "/Program Files/xxx/xxx.exe" "%1",报错如下

Error: Line  44 - unsupported DirID 0
Error: File d:/systmp/cwinltmp/wiz231.inf contains DirIDs, which are not supported

 

临时解决办法:

我用VS2008做出CAB后,用wince cab manager 3.0打开

继续编辑,修正上面的值为我要的,保存,OK!

 

还请大家指点问题的所在

posted @ 2013-07-23 19:25  随风任飘遥  阅读(4617)  评论(0编辑  收藏  举报
1、不要犯经验主义的错误,有些经验可能是错误的。 2、发现bug要及时处理,不可为了赶工而忽略。随机性出现的bug更要注意,因为这类bug更难发现,也就更能解决。