使用Orca在Visual Studio安装项目中创建自定义对话框

一、背景     

      使用Visual Studio安装项目来创建程序的安装很方便快捷,但在创建过程中提供可以使用的对话框很有限:

      启动节点有:“启动画面”、“欢迎使用”、3个“单选按钮”、3个“复选框”、3个“文本框”、“安装文件夹”(或“安装地址”)以及“确认安装”。

     image

二、解决方案

     可以使用Orca工具创建自定义的对话框,Orca 是一款由微软提供的用于 Windows Installer 数据库表编辑器。可用来编辑 Windows Installer 数据库文件 (.msi) 文件,合并模块 (.msm) 文件,补丁 (.msp) 文件,内部一致性计算程序 (.cub) 文件和补丁创建属性 (.pcp) 文件。是修改和本地化 Windows Installer 数据库的最佳辅助工具。
     Visual Studio的安装项目所使用的对话框保持在:%ProgramFiles%\Microsoft Visual Studio 8\Common7\Tools\Deployment\VsdDialogs目录下。

     使用Orca打开对话框的wid文件显示如下:

image

      主要包含有几个表:

      1、Dialog

      主要是对话框的定义,包括对话框的高度、宽度,标题,按钮的顺序。更多描述参考:http://msdn.microsoft.com/en-us/library/aa368286(v=VS.85).aspx

      2、Control

      是对话框中控件的列表,包括控件的标识,所属的对话框(具体类型定义参考MSDN:http://msdn.microsoft.com/en-us/library/aa368039(v=VS.85).aspx),位置,大小,类型等。更多描述参考:http://msdn.microsoft.com/en-us/library/aa368286(v=VS.85).aspx

      3、ControlCondition

      描述对话框的条件,更多描述参考:http://msdn.microsoft.com/en-us/library/aa368035(v=VS.85).aspx

      4、ModuleConfiguration

      描述对话框相关的配置,包括名称,格式,类型,取值范围,默认值,文本,描述等。

      5、ModuleDialog

      描述对话框的标识,显示名称

      6、ModuleSignatue

      描述对话框的ID,语言。

      7、ModuleSubstitution

      描述表,行的值的映射表。

三、示例

      简单描述创建5个复选框的对话框的过程。

      1、从ProgramFiles%\Microsoft Visual Studio 8\Common7\Tools\Deployment\VsdDialogs\0目录下复制”VsdCustomCheck1Dlg.wid”,并改名为“VsdCustomCheck4Dlg.wid”。

      2、使用Orca工具打开“VsdCustomCheck4Dlg.wid”文件,为了不跟原来的冲突,把所有“CheckboxA”改为“CheckboxD”(可以使用替换Ctrl+Shift+F)。

      3、在“Control”表添加“CheckBox5”:

image

      4、添加ControlAction:

image

      5、设置ModuleConfiguration,注意,自带的都是通过“#+编号”来设置,这些配置也可以直接用文本。

image   

       6、设置ModuleSubstitution:

image

       7、设置ModuleId:image 按钮可以直接生成Guid:

image

       8、查看预览效果:“工具”——“对话框预览”

image

      9、要在Visual Studio中显示还需要把”VsdCustomCheck4Dlg.wid”拷到1033目录下并设置Language:

image

     10、重启Visual Studio就可以在添加的对话框看到自定义的对话框“Checkboxes  (D)”:

image 

      11、添加到启动节点,查看其属性:

image  

      12、测试:

image

自定义对话框下载

posted @ 2011-05-19 00:11  Asharp  阅读(2849)  评论(3编辑  收藏  举报