代码改变世界

Visual Studio 创建安装程序包 - 用户界面、自定义操作

2010-08-17 15:16  Jeff Chow  阅读(3461)  评论(3编辑  收藏  举报

  之前写了Visual Studio创建安装程序包 - 文件系统主要是对目标计算机目录方面的内容,现在补上自定义操作以及对话框等内容。

 

  通常会看某些安装程序不是直接点下一步、下一步就可以完成的,过程中需要输入一些信息,进行一些配置操作。先看看Visual Studio为我们提供的设置界面,解决方案资源管理器 - 右键点击安装项目 - 视图 - 用户界面,即可看到如下界面。

image

 

  每一个末节点即为安装时候的一个对话框,图中的用户界面已经为安装 - 启动节点添加了文本框(A)。如果想添加对话框,右键点二级节点,选择添加对话框,打开添加对话框窗口。

image

 

  添加对话框窗口中提供了各种在安装时候可出线的对话框,Visual Studio中本人并未发现可以查看对话框视图的功能,不过基本的对话框就那么几种,有无视图影响不大。因为已经添加了文本框(A),所以添加对话框窗口中只有文本框(B)和文本框(C)。这意味着,Visual Studio打包的安装程序最多只能三个对话框,而且只能添加图片中出线的对话框,至于能不能导入更多,本人尚未发现。

 

 

 

  接下来看看文本框的属性。

image 

  这里不对每个属性进行说明了。一个文本框里最多能出线四个类似于TextBox那样的文本框,分别是Edit1、Edit2、Edit3、Edit4,根据实际需求可以选择显示或者不显示。而Edit1Property、Edit2Property、Edit3Property、Edit4Property则是为了让我们在自定义操作中使用这些文本值。

 

 

 

  因为在安装中需要对.config文件进行修改,我为项目添加了一个安装程序类(继承自System.Configuration.Install.Installer)。而在安装项目中,我则需要添加自定义操作。解决方案资源管理器 - 安装程序项目 - 右键 - 视图 - 自定义操作 - 安装 - 添加自定义操作。

image

 

  然后在选择框中选择带有安装程序类的项目的主输出,点击确定。添加后的自定义操作视图如下。

image

 

  然后来看看自定义操作的属性。

image

 

  需要自己编写的是CustomerActionData这一属性。图中的内容/editb1=[EDITB1],其中editb1是用来在安装程序类中取值的key,而EDITB1则是对应用户界面 - 文本框中各个文本框的Property属性。在安装操作类中,便可以通过如下的代码获取文本框的内容。

/// <summary>
/// 引发System.Configuration.Install.Installer.AfterInstall 事件,即在执行安装后进入该函数。
/// </summary>
/// <param name="savedState"></param>
protected override void OnAfterInstall(IDictionary savedState)
{
    //editb1是CustomerActionData中对应的key。
    string editb1 = this.Context.Parameters["editb1"];
}