惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
爱范儿
爱范儿
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
Jina AI
Jina AI
Project Zero
Project Zero
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tenable Blog
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
月光博客
月光博客
雷峰网
雷峰网
G
Google Developers Blog
V
V2EX
T
Tor Project blog
罗磊的独立博客
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
S
Securelist
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
小众软件
小众软件
Scott Helme
Scott Helme
I
Intezer
T
Threat Research - Cisco Blogs
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
C
CERT Recently Published Vulnerability Notes
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LINUX DO - 最新话题
N
News | PayPal Newsroom
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
Latest news
Latest news
AWS News Blog
AWS News Blog
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - Asharp

使用PowerShell批量修改项目文件的版本号 PowerShell因为在此系统中禁止执行脚本解决方法 .NET中zip的压缩和解压——SharpCompress .NET中zip的压缩和解压 【转】Face detection with getUserMedia 【转】Web实现音频、视频通信 【转】关于IPv6的六大误区:IPv6并非更安全 【转】Silverlight与Flex的比较选择 [转]12 很有用的 Chrome 浏览器命令 How to Set Up SSL on IIS 7 JavaScript实现md5加密 在64位系统32的.net应用程序出现CLR20R3错误 【转】CLR20R3 程序终止的几种解决方案 【转】ASPxGridView 日期范围过滤扩展 DevExpress的web.config配置 DevExpress的JavaScript脚本智能提示 加载托管C++程序集出现0x800736B1异常的解决方法 Exchange server 2007安装篇 Visual Assist X中文注释提示错误问题
使用Orca在Visual Studio安装项目中创建自定义对话框
Asharp · 2011-05-19 · via 博客园 - Asharp

一、背景     

      使用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

自定义对话框下载