InstallShield——指定多个安装目录

假设要制作一个安装包, 该安装包分为程序部分和数据库部分,需要让用户指定这两个部分的安装路径,制作实例如下:

版本:InstallShield12 Premier Edition

InstallShield项目类型:InstallScript Project

 

操作步骤:

1、建立应用程序的目录:在“Application Target Folder”下建立目录,此处建立的目录将安装在TARGETDIR下,而TARGETDIR是通过“Dlg_SdAskDestPath2窗体或“Dlg_SdAskDestPath”由用户指定的,下文会讲到。

 

2、建立数据库的目录:在“Script-defined Folders”下建立一个变量,如“<DataBase>”,注意,这个变量要用“<>”括起来,并在这个变量下面建立一个目录,并添加数据库安装所需要的文件。

  

 

3、添加目录后,可以在Organization中的Components中看到如下结构:>

 

其中“Files6”为“Script-defined Folders”生成的组件:;

 

注意它的“Destination”值为“<DataBase>

 

4、在Setup.Rul中写如下代码:

Dlg_SdAskDestPath2:

      szTitle = "";

    szMsg = “将程序安装到以下路径”;

    nResult = SdAskDestPath2( szTitle, szMsg, szDir );

    TARGETDIR = szDir; //将用户指定的目录存入TARGETDIR

    if (nResult = BACK) goto Dlg_SdRegisterUser;

 

//以下是添加的代码,用来显示第二个窗体让用户指定数据库的安装目录

Dlg_SdAskDestPath2_DB:

      szTitle = "";

szMsg = “将数据库安装到以下路径”;

      nResult = SdAskDestPath2( szTitle, szMsg, szDir );

      szPropertyVar= "<DataBase>"; //将用户指定的目录存入"<DataBase>"

    ComponentSetTarget(MEDIA,szPropertyVar,szDir);

    if (nResult = BACK) goto Dlg_SdAskDestPath2;  

 

 

通过这些设置,就能将程序是数据库分别安装到用户指定的两个不同位置上去了。

### 使用 InstallShield 打包 Visual C++ 6.0 项目 #### 安装与准备 对于希望使用 InstallShield 来打包由 Visual C++ 6.0 创建的应用程序的开发者来说,首先需要获取适合版本的 InstallShieldInstallShield 提供多个版本,其中某些可能更适合特定需求或开发环境[^1]。 #### 配置项目设置 一旦安装完成,在启动 InstallShield 后应创建一个新的工程向导来引导整个过程。选择针对 Windows 应用程序的选项,并指定目标平台以及所使用的编程语言——这里即为 C++。随后按照提示输入有关应用程序的信息,比如名称、制造商等基本信息[^2]。 #### 添加文件到安装包内 接下来的关键步骤之一就是将编译后的可执行文件及其他依赖项加入至安装包之中。这通常涉及到浏览本地磁盘找到这些必要的二进制文件并将其添加进来。特别是当处理像 MyP.exe 或其他通过不同工具链生成的内容时更需注意这一点。 #### 设置注册表键值和其他系统修改 如果应用程序运行期间需要用到自定义路径下的 DLL 文件或者其他形式的外部库,则可以在这一环节设定相应的注册表条目以便于顺利加载它们。此外还可以在此处安排一些额外的任务如创建快捷方式链接等操作。 ```cpp // 示例:C++ 中访问注册表 (仅作示意用途) #include <windows.h> void AddRegistryEntry() { HKEY hKey; RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\YourApp", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL); RegSetValueEx(hKey, "PathToDLL", 0, REG_SZ, (BYTE *)"C:\\path_to_dlls", lstrlen("C:\\path_to_dlls") * sizeof(TCHAR)); RegCloseKey(hKey); } ``` #### 测试与发布 最后但同样重要的是要彻底测试构建出来的安装器能否正常工作。这意味着不仅要验证它能在各种操作系统环境下成功部署软件本身及其所有组成部分,还要确认卸载功能也能够按预期运作。经过充分检验之后就可以考虑正式发布了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值