内容转自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!

还请大家指点问题的所在

在vs2008工程中制作cab包的更多相关文章

  1. 制作CAB包

    制作CAB包 inf文件 INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚 ...

  2. C# 将DLL制作CAB包并在浏览器下载,自动安装。(Activex)(包括ie打开cab包一直弹出用户账户控制,确定之后无反应的解决办法。)

    制作Activex程序网上有很多方法我就不说了,我的业务主要做的就是将DLL打包成CAB供浏览器下载. 下面制作证书,以及制作cab包需要用到一些工具.我将工具包上传到自己的博客园里了,以供大家下载. ...

  3. 在java工程中导入jar包的注意事项

    在java工程中导入jar包后一定要bulid path,不然jar包不可以用.而在java web工程中导入jar包后可以不builld path,但最好builld path.

  4. VS2008 工程中部分文件不参与编译 从生成中排除【Worldsing笔记】

    Visual Studio 2008 .VS2008.VC2008工程源文件配置.编译配置   有时编写代码时,往往存在这样的需求(或是希望有这样的功能):一个工程经过不共同的配置实现不同的版本或是功 ...

  5. Delphi发布ActiveX控件 制作CAB包 数字签名相关

    文件: SignTool.rar 大小: 84KB 下载: 下载 最近我正在研究ActiveX技术.我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一 ...

  6. 【idea】idea如何在maven工程中引入jar包

    在pom.xml文件中引入所有代码包后,项目右键--maven--reimport </dependencies>

  7. 【转】在XCode工程中创建bundle包

    http://www.giser.net/?p=859 Bundle Programming Guide: https://developer.apple.com/library/ios/docume ...

  8. android studio 使用jar包,arr包和怎么使用githup开源项目中的aar包或module

    我这里的android studio的版本是2.2.3版本 一.现在大家都用android studio了,就有人问怎么使用jar包 其实使用jar包比较简单 直接吧jar放入工程的app目录下的li ...

  9. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

随机推荐

  1. js 格式化时间、字符串指定长度、随机字符串

    格式化字符串长度 方法 function formatWidth(str, width){ str += '' if(str.length<width) '+str, width) else r ...

  2. OpenCV在字符提取中进行的预处理(转)

    OCR简介熟悉OCR的人都了解,OCR大致分为两个部分: -文字提取text extractor -文字识别text recognition 其中,第一部分是属于图像处理部分,涉及到图像分割的知识,而 ...

  3. 2018秋寒假作业6- -PTA编程总结3

    PTA3抓老鼠啊~亏了还是赚了?思路: 首先定义变量并初始化为零,然后用if-else语句判断其关系和计算奶酪数量及盈利情况.

  4. TCP网络编程

    TCP网络编程  与UDP不同的是TCP是通过客服端和服务端的方式来传输数据的.客服端:public class TCPClient { /**     * @param args     * @th ...

  5. git进阶命令

    首先, clone 一个远端仓库,到其目录下: $ Git clone git://example.com/myproject $ cd myproject 然后,看看你本地有什么分支: $ git ...

  6. SpringBoot使用外置的Servlet容器

    SpringBoot默认使用嵌入式的Servlet容器,应用打包成可执行的jar包 优点:简单.便携 缺点:默认不支持jsp,优化定制比较复杂(使用定制器serverProperties.自定义Emb ...

  7. Subarray Sum & Maximum Size Subarray Sum Equals K && Subarray Sum Equals K

    Subarray Sum Given an integer array, find a subarray where the sum of numbers is zero. Your code sho ...

  8. C#实现Zip压缩解压实例

    原文地址:https://www.cnblogs.com/GoCircle/p/6544678.html 本文只列举一个压缩帮助类,使用的是有要添加一个dll引用ICSharpCode.SharpZi ...

  9. day1 diff命令递归比较目录下的文件

    一.diff实战 (1)递归比较文件夹下所有的文件及目录的不同 diff --brief -Nr dir1/ dir2/                               Reference ...

  10. zabbix系列(二)zabbix3.0.4添加对mysql数据库性能的监控

    zabbix3.0.4添加Mysql的监控 zabbix3.0 server已自带mysql的模板了,只需安装agent端,然后在web端给主机增加模板就行了. Agent端操纵 /etc/zabbi ...