65.9K
CodeProject 正在变化。 阅读更多。
Home

在安装程序包中使用 VBScript

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.68/5 (9投票s)

2005 年 9 月 24 日

2分钟阅读

viewsIcon

137372

downloadIcon

1008

如何使用 VBScript 增强安装包,并引导用户完成安装和配置。

引言

一个应用程序通常有一些特定于系统的配置。连接字符串是此类可配置设置的一个例子。此设置必须由用户在安装后但在使用应用程序之前进行调整。

本文介绍的解决方案有助于引导安装用户通过在记事本中简单地打开此文件来更改配置设置。它仅仅是安装手册之上的一个服务。

背景

在不久的过去,我开发了一些需要在使用前进行配置的应用程序。对于一个项目,我制作了一个非常漂亮的安装程序类,带有一个漂亮的 UI,它会询问服务器和数据库名称,并将这些信息合并到 app.config 中。

这种方法的缺点是,创建这样的安装程序类相对困难,维护它更难。而且,使用标准的 Visual Studio .NET 安装和部署项目可以创建的 UI 非常简单。例如,无法进行输入检查。

我的另一个选择是,只需在安装手册中指示安装用户安装该程序,然后转到 C:\Program Files\et cetera 并编辑可以在那里找到的 .config 文件。

在开发和部署 .NET Windows 服务时,我发现最后一种方法对客户的服务太少。安装用户必须调整 CONFIG 文件,然后手动启动该服务。因此,我决定寻找一个不同的解决方案,但没有找到,然后创建了这里描述的那个。

在安装程序中使用 VBScript

我的目标非常简单:在安装过程中自动用记事本打开 .config 文件。这可以使用 VBScript 完成。要在安装期间运行 VBScript,只需创建一个脚本,将其添加到您的安装和部署项目中,并将其添加为自定义操作,如演示代码所示。

使用此代码用 .config 文件打开记事本

Dim curdir, WshShell

caption = "InstallerDemoService.Setup"
'Determine the path where this running script is. 
'That is also the path to the config-file.
'The path ("[TARGETDIR]") is being passed by the installer 
'in the one available parameter: CustomActionData
curdir = Session.Property("CustomActionData")

'Start Notepad with the config-file
Set WshShell = CreateObject ("WScript.Shell")
WshShell.Run ("notepad.exe """ + 
        curdir + "\InstallerDemoService.exe.config""")

额外功能

在运行的脚本中,可以完成任何操作。在演示代码中,会询问是否在安装后启动 .NET Windows 服务。在回答“是”之后,将从脚本启动该服务。

关注点

在 VBScript 中需要当前目录。由于安装包中的脚本在其自己的脚本引擎上下文中运行,因此 vbs 调用来确定路径将不起作用 (CreateObject("Scripting.FileSystemObject"))。解决方案是将目标目录传递给安装程序可用的脚本中的单个参数

curdir = Session.Property("CustomActionData")

结论

使用 VBScript 增强安装和部署项目很容易,并且可以用于各种任务。我认为这是一种以这种方式扩展安装程序的独特方法。

© . All rights reserved.