本演练演示为启动记事本的 Windows 应用程序创建一个安装程序的过程。在本演练中,您将首先创建一个 Windows 应用程序,然后创建一个安装程序;以便在安装过程中设置快捷方式和文件关联、添加注册表项、显示自定义对话框以及检查 Internet Explorer 的版本。
注意创建自己的安装程序时,不一定需要执行下面的所有步骤。本演练的目的是介绍部署中可能会用到的一些可选功能。若只是创建一个基本的安装程序,则只需完成此过程中的前四个部分。
创建 Windows 应用程序
- 在“文件”菜单上指向“新建”,然后选择“项目”。
- 在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic 项目”,然后选择“模板”窗格中的“Windows 应用程序”。在“名称”框中,键入“我的记事本”。
- 单击“确定”关闭对话框。
- 在“工具箱”中选择“Windows 窗体”选项卡,并将“按钮”控件拖到窗体中。
- 双击 Button 控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码:
Shell("Notepad.exe",AppWinStyle.NormalFocus)
这将启动 Notepad.exe 并将焦点对准它。
- 在“生成”菜单上,选择“生成我的记事本”该应用程序。
创建部署项目
- 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
- 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入“我的记事本安装程序”。
- 单击“确定”关闭对话框。
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“属性”窗口中,选择 ProductName 属性,并键入“我的记事本”。
注意 ProductName 属性确定文件夹名称和“添加/删除程序”对话框中为应用程序显示的名称。
将 Windows 应用程序添加到安装程序中
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“应用程序文件夹”节点。
- 在“操作”菜单上,选择“添加”->“项目输出”。
- 在“添加项目输出组”对话框中,从“项目”下拉列表中选择“我的记事本”。单击“确定”关闭对话框。
- 从列表中选择“主输出”组,并单击“确定”。
- 在“生成”菜单上选择“生成我的记事本安装程序”。
部署应用程序(基本安装程序)
如果正在执行一个完整的演练过程,可以跳过此步骤。
可选的部署功能
其余步骤演示可选的部署功能。
创建快捷方式
此步骤将为您的应用程序创建一个快捷方式,安装过程中,该快捷方式将放置到目标计算机的桌面上。
为 Windows 应用程序创建快捷方式
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。
- 在“文件系统编辑器”中,选择“主输出来自‘我的记事本’”节点。
- 在“操作”菜单上,选择“创建主输出来自‘我的记事本’的快捷方式”。
- 将此快捷方式重命名为“我的记事本的快捷方式”。
- 选择“我的记事本的快捷方式”,并将其拖到左窗格的“用户桌面”文件夹中。
创建文件关联
此步骤为“我的记事本”添加文件关联,以便双击 .vbn 文件时启动“我的记事本”应用程序。
为 Windows 应用程序创建文件关联
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件类型”。
- 在“文件类型编辑器”中选择“目标计算机上的文件类型”节点。在“操作”菜单上,选择“添加文件类型”。
- 将“新文档类型 #1”重命名为 Vbn.doc。
- 在“属性”窗口中,将文件类型的 Extension 属性设置为 vbn。
- 选择 Command 属性并单击“省略号”() 按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,并选择“主输出来自‘我的记事本’”。
- 单击“确定”关闭对话框。
添加注册表项
此步骤将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索每用户信息。
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,指向“编辑器”,并选择“注册表”。
- 选择“HKEY_CURRENT_USER”节点并将其展开,然后展开“Software”节点,并选择“[Manufacturer]”节点。
注意“Manufacturer”节点两边有括号,表示它是一个属性。它将被替换为输入的部署项目的 Manufacturer 属性值。
- 在“操作”菜单上,选择“新建”->“项”。
- 重命名 UserChoice 项。
- 选择 UserChoice 项。
- 在“操作”菜单上,指向“新建”,然后单击“字符串值”。
- 重命名 TextColor 值。
- 在“属性”窗口中,选择 Value 属性,并输入 Black。
添加自定义安装对话框
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。
- 在用户界面编辑器中,选择“安装”节点下的“启动”节点。
- 在“操作”菜单上,选择“添加对话框”。
- 在“添加对话框”对话框中,选择“复选框 (A)”。
- 单击“确定”关闭对话框。
- 在“操作”菜单上,选择“上移”两次,将“复选框 (A)”对话框放置在“安装文件夹”对话框之上。
- 在“属性”窗口中,将 BannerText 属性设置为“示例”。
- 将 BodyText 属性设置为“‘安装示例文件’复选框控制是否安装示例文件。如果处于未选中状态,则不安装示例。
- 将 CheckBox1Label 属性设置为“要安装示例吗?”。
- 将 CheckBox2Visible、CheckBox3Visible 和 CheckBox4Visible 属性设置为 false。这将隐藏其他复选框。
使用示例
此步骤创建一个 Samples 子文件夹,它将被安装到 Application 文件夹的下面。
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件系统”。“应用程序文件夹”仍应被选中。
- 从“操作”菜单上指向“添加”,然后选择“文件夹”。
- 将“新建文件夹 #1”重命名为“示例”。
此步骤创建两个简单的文本文件,如果用户在自定义对话框中选择“安装示例”选项,将安装这两个文本文件。
为应用程序创建示例文件
- 使用记事本或其他文本编辑器创建一个包含文本“这是 rules.vbn”的文本文件,然后将其保存为 Rules.vbn。
注意若要防止记事本自动添加 .txt 扩展名,请从“文件类型”下拉列表中选择“所有文件”。
- 创建另一个包含文本“这是 memo.vbn”的文本文件,将其保存为 Memo.vbn。
此步骤将示例文件添加到 Samples 文件夹中,并设置决定是否安装该文件的条件。
将示例添加到安装程序中
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。从“视图”菜单中指向“编辑器”,选择“文件系统”,然后选择“示例”文件夹。
- 从“操作”菜单上指向“添加”,然后选择“文件”。将 Rules.vbn 和 Memo.vbn 文件添加到“示例”文件夹中。
- 在文件系统编辑器中选择 Rules.vbn。
- 在“属性”窗口中,将 Condition 属性设置为 CHECKBoxA1=1。运行安装程序时,只在自定义的复选框被选中时才安装 Rules.vbn 文件。
- 在文件系统编辑器中选择 Memo.vbn 文件。
- 在“属性”窗口中,将 Condition 属性设置为 CHECKBoxA1=1。运行安装程序时,只在自定义的复选框被选中时才安装 Memo.vbn 文件。
添加启动条件
此步骤检查在目标计算机上是否安装了 Internet Explorer 5.0 或更高版本,如果未安装所需版本的 Internet Explorer,将停止安装过程。
添加启动条件来检查 Internet Explorer 版本
注意此步骤旨在阐述启动条件的概念;“我的记事本”应用程序实际上并不依赖于 Internet Explorer。
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“启动条件”。
- 在启动条件编辑器中,选择“目标计算机上的要求”节点。
- 在“操作”菜单上,选择“添加文件启动条件”。
将在“搜索目标计算机”节点下面添加一个“搜索 File1”节点,而在“启动条件”节点下面添加一个“Condition1”节点。
- 将“搜索 File1”重命名为“搜索 Internet Explorer”。
- 在“属性”窗口中,将 FileName 属性设置为 Iexplore.exe,将 Folder 属性设置为 [ProgramFilesFolder],将 Depth 属性设置为 2,将 MinVersion 属性设置为 5.00。
- 选择“Condition1”节点。
- 将 Message 属性设置为“该程序需要 Microsoft Internet Explorer 5.0 或更高版本。请安装 Internet Explorer 并重新运行‘记事本’安装程序。”。
设置可选属性
此步骤设置一个属性,以便在目标计算机上没有正确版本的 Windows 安装程序时,自动安装 Windows 安装引导程序文件。
设置部署项目的可选属性
- 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,选择“属性页”。
- 在“我的记事本安装程序”属性页中,选择“引导程序”下拉列表,然后选择“Windows 安装引导程序”。
- 在“生成”菜单上选择“生成我的记事本安装程序”。
在开发计算机上安装
此步骤将运行安装程序并在开发计算机上安装“我的记事本”。
在开发计算机上安装“我的记事本”
部署到其他计算机
此步骤将运行安装程序并将“我的记事本”安装到其他计算机。
将“我的记事本”部署到其他计算机上
- 在 Windows 资源管理器中,定位到项目目录并查找所生成的安装程序。默认路径是 /documents and settings/yourloginname/My Notepad Installer/project configuration/My Notepad Installer.msi。默认“项目配置”是“调试”。
- 将该目录中的我的记事本安装程序 .msi 文件以及其他所有文件和子目录复制到另一台计算机上。
注意若要在未连网的计算机上安装,请将文件复制到 CD-ROM 等传统媒体中。
- 在目标计算机上双击 Setup.exe 文件来运行安装程序。
注意必须在计算机上具有安装权限才能运行安装程序。
测试
此步骤将测试从桌面快捷方式启动安装程序和卸载。
测试安装
***************************
1。首先要建立一将要打包制作成安装程序的项目。建好之后,选择文件->添加-->新建项目在“添加新项目”的窗体里打开“其他项目类型”,选择“安装和部署”,在右边选中“安装项目”,在下面的名称里输入你的安装程序名,然后确定。本例输入名为“THB管理系统”。2。接下来当然是要添加需打包的项目了。右键安装程序的项目会选添加会看到四个选项。 项目输出: 打包最核心内容,exe执行文件和配置文件之类... 文件: 一些辅助文件,说明书什么的,和程序运行没必然关系的文件. 合并模块: 一些辅助模块,比如水晶报表... 程序集: 程序运行需用到的其他组件(非要打包专案生成)选中项目输出,在弹出的选项框中主输出,然后确定。3。选中安装程序项目(THB管理系统),在上方的工具条里选择“文件系统编辑器”(或选视图-->编辑器-->文件系统),在最左侧回出现三个文件夹: 应用程序文件夹:为程序的安装目录下生成文件的选择 用户的“程序”菜单:为打包后安装程序在桌面生成的文件的选择 用户桌面:开始 菜单 生成文件的选择右键--应用程序文件夹-->添加-->文件夹(本例起名为:Images,用来存放安装程序的图片,可以根据自己需要建立文件夹)右键--应用程序文件夹-->添加-->文件,在弹出的对话框中选中C:/WINDOWS/system32/msiexec.exe,该文件是系统自带用来卸载用的。选中用户的“程序”菜单,然后右键添加文件夹,命名为“THB管理系统”。 (用来在程序“开始”菜单中把两个运行和卸载的快捷方式纳入在他的子菜单中)选中“应用程序文件夹”,再选中中间的“主输出xxx(活动)”,xxx为的要打包的项目名然后右键,选择“创建 主输出xxx(活动) 的快捷方式”,命名为“THB管理系统”,选中,在属性栏里进行设置。Icon:设置它的显示图标。Folder:它所属的文件夹。操作如下:右键Images文件,添加-->文件,在弹出的对话框中选中快捷方式的图标(桌面上和“开始”菜单上的图标)点击Icon属性,浏览选中你刚才添加的图标。点击Folder属性,(这是选择你要这个快捷方式在哪里显示)选中到“THB管理系统”那个节点。重复操作再建一个快捷方式。选中Icon后,Folder选中到用户桌面。建这两个快捷方式是为了将其添加到桌面和“开始”的程序菜单中。将来安装的程序通过这两个快捷方式运行程序。选中“应用程序文件夹”,再选中中间的msiexec.exe,右键添加一个快捷方式,命名为“THB管理系统卸载”,很明显快捷方式是用来在“开始”的程序菜单中起用卸载用的。选中Icon后,Folder选中到“THB管理系统”那个节点。选中安装程序项目(THB管理系统),将属性栏中的ProductCode中的值复制,选中“THB管理系统卸载”快捷方式,在属性栏的Arguments中输入:/x加上刚才复制的值,如:/x{DA9FBA2E-ACF3-4189-B413-2BAF3D62A6AA}4。设置用户协议(我们安装程序时候,经常会出现用户许可协议,让你选择同意还是不同意的对话框)建立一个LisenceFile.rtf文件(可以用记事本建一个文本文件,输入内容,保存为LisenceFile.rtf),选中“应用程序文件夹”,添加-->文件,将LisenceFile.rtf添加进来。然后视图-->编辑器-->用户界面,选中“许可协议”,在属性栏的 LicenseFile,浏览,在“应用程序文件夹”找到LisenceFile.rtf,确定即可。5。将Dot Net环境集成到安装环境选中安装程序项目(THB管理系统),右键属性(或视图-->属性页),点击系统必备按扭,它会默认将依赖项加到安装环境,如果没有选中要集成的必备组件,本例为选中.NET Framework2.0,在指定系统必备组件的安装位置中选中“从与我的应用程序相同位置下载系统必备组件”,然后确定。然后又键安装程序项目(THB管理系统),生成,就OK了。-------------------------------------------------------------------------------------------------以上也只是简单介绍了打包的最简单实现,要想自定义安装的复杂功能如 注册表,安装界面,还要进行单独实现。-------------------------------------------------------------------------------------------------下面介绍几个特殊的实现。1.创建文件关联此说明为“THB管理系统”添加文件关联,以便双击 .vbn 文件时启动“我的记事本”应用程序。为 Windows 应用程序创建文件关联 在解决方案资源管理器中选择“THB管理系统”项目。在“视图”菜单上指向“编辑器”,然后选择“文件类型”。 在“文件类型编辑器”中选择“目标计算机上的文件类型”节点。在“操作”菜单上,选择“添加文件类型”。将添加一个“新文档类型 #1”节点,而且该节点将打开,以便您重命名。 将“新文档类型 #1”重命名为 Vbn.doc。 在“属性”窗口中,将文件类型的 Extension 属性设置为 vbn。 选择 Command 属性并单击“省略号”() 按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,并选择“主输出来自‘THB管理系统’”。单击“确定”关闭对话框。 2.添加注册表项此说明为将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索每用户信息。为 Windows 应用程序添加注册表项 在解决方案资源管理器中选择“THB管理系统”项目。在“视图”菜单上,指向“编辑器”,并选择“注册表”。 选择“HKEY_CURRENT_USER”节点并将其展开,然后展开“Software”节点,并选择“[Manufacturer]”节点。 注意 “Manufacturer”节点两边有括号,表示它是一个属性。它将被替换为输入的部署项目的 Manufacturer 属性值。在“操作”菜单上,选择“新建”->“项”。 (新建->”键”)重命名 UserChoice 项。 选择 UserChoice 项。 在“操作”菜单上,指向“新建”,然后单击“字符串值”。 重命名 TextColor 值。 在“属性”窗口中,选择 Value 属性,并输入 Black。3.添加自定义安装对话框此说明为添加并配置一个在安装期间显示的自定义用户界面对话框。在解决方案资源管理器中选择“THB管理系统”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。 在用户界面编辑器中,选择“安装”节点下的“启动”节点。 在“操作”菜单上,选择“添加对话框”。在“添加对话框”对话框中,选择“复选框 (A)”。 单击“确定”关闭对话框。在“操作”菜单上,选择“上移”两次,将“复选框 (A)”对话框放置在“安装文件夹”对话框之上。在“属性”窗口中,将 BannerText 属性设置为“示例”(此为新对话框的标题)。 将 BodyText 属性设置为“‘安装示例文件’复选框控制是否安装示例文件。如果处于未选中状态,则不安装示例。将 CheckBox1Label 属性设置为“要安装示例吗?”(此为新对话框的文字说明)。将 CheckBox2Visible、CheckBox3Visible 和 CheckBox4Visible 属性设置为 false。这将隐藏其他复选框。接下来创建一个Samples子文件夹,它将被安装到安装程序文件夹的下面(用来根据自定义对话框中复选框被选择时安装指定文件)。添加 Samples 文件夹(存放被选种安装的程序)。在解决方案资源管理器中选择“THB管理系统”项目。在“视图”菜单上指向“编辑器”,然后选择“文件系统”。“应用程序文件夹”仍应被选中。从“操作”菜单上指向“添加”,然后选择“文件夹”。 将“新建文件夹 #1”重命名为“示例”。 此步骤创建两个简单的文本文件,如果用户在自定义对话框中选择“安装示例”选项,将安装这两个文本文件。为应用程序创建示例文件:使用记事本创建一个包含“这是 rules.vbn”内容的文本文件,然后将其保存为 Rules.vbn。创建另一个包含文本“这是 memo.vbn”的文本文件,将其保存为 Memo.vbn。 接下来将示例文件添加到 Samples 文件夹中,并设置决定是否安装该文件的条件,将示例添加到安装程序中。具体操作为:在解决方案资源管理器中选择“THB管理系统”项目。从“视图”菜单中指向“编辑器”,选择“文件系统”,然后选择“示例”文件夹。 从“操作”菜单上指向“添加”,然后选择“文件”。将 Rules.vbn 和 Memo.vbn 文件添加到“示例”文件夹中。 在文件系统编辑器中选择 Rules.vbn。 在“属性”窗口中,将 Condition 属性设置为 CHECKBoxA1=1(此为设置条件,CHECKBoxA1=1是复选框被选中时)。运行安装程序时,只在自定义的复选框被选中时才安装 Rules.vbn 文件。 在文件系统编辑器中选择 Memo.vbn 文件。在“属性”窗口中,将 Condition 属性设置为 CHECKBoxA1=1。运行安装程序时,只在自定义的复选框被选中时才安装 Memo.vbn 文件。-------------------------------------------------------------------------------------------------------在用户界面中的“启动”中,还可以添加其他安装对话框,如:启动画面(SplashBitmap中可设置启动画面图片),客户信息画面(可输入姓名,公司等信息),注册用户画面(需要用户注册的程序)-------------------------------------------------------------------------------------------------------4.添加启动条件此说明为检查在目标计算机上是否安装了Internet Explorer 5.0 或更高版本,如果未安装所需版本的Internet Explorer,将停止安装过程。添加启动条件来检查Internet Explorer版本。注意此步骤旨在阐述启动条件的概念;“THB管理系统”应用程序实际上并不依赖于 Internet Explorer。在解决方案资源管理器中选择“THB管理系统”项目。在“视图”菜单上指向“编辑器”,然后选择“启动条件”。 在启动条件编辑器中,选择“目标计算机上的要求”节点。 在“操作”菜单上,选择“添加文件启动条件”。将在“搜索目标计算机”节点下面添加一个“搜索 File1”节点,而在“启动条件”节点下面添加一个“Condition1”节点。将“搜索 File1”重命名为“搜索 Internet Explorer”。 在“属性”窗口中,将FileName属性设置为 Iexplore.exe,将 Folder 属性设置为[ProgramFilesFolder],将Depth属性设置为2,将 MinVersion 属性设置为 5.00。选择“Condition1”节点。将 Message 属性设置为“该程序需要 Microsoft Internet Explorer 5.0 或更高版本。请安装Internet Explorer 并重新运行‘THB管理系统’安装程序。”。5.如果使用了水晶报表,手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件) (包括dotNetFramework和MDAC27),位于:C:/Program Files/Common Files/Merge Modules/ 下,*为必要的具体功能如下: (托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间) * Crystal_Managed2003.msm Crystal_Managed2003_chs.msm (对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。) * Crystal_Database_access2003.msm Crystal_Database_access2003_chs.msm (KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,注意是添加合并模块,否则没有“MergeMouduleProperties”属性) * Crystal_regwiz2003.msm (如果报表文件使用了 ADO.NET 的 dataset 数据集对象,那么 VC_User_CRT71_RTL_X86_---.msm 和 VC_User_STL71_RTL_X86_---.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录) VC_User_CRT71_RTL_X86_---.msm VC_User_STL71_RTL_X86_---.msm (很多人经常出现查询错误,不妨加上这个)打开解决方案-->右键点击Crystal_regwiz2003.msm的属性,在“MergeMouduleProperties”里的 “License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)********************************************加设以上步骤后,重新生成即可。