当前位置:文档之家› InstallShield教程

InstallShield教程

InstallShield教程
InstallShield教程

使用

本文使用的InstallShiled的版本是InstallShiled 2008 Premier Edition,只介绍制作Base MSI Preject及InstallScript MSI Preject安装包。

1菜单

大多数菜单与其他软件一样,这里只介绍几个有特点的。

1.1Go

可以通过此菜单到任意一个设计界面中。

1.2Project

1.1.1[Perform Static Scan…]及[Perform Dynamic Scan…]

静态及动态搜索应用程序所需要的系统对象及Dll运行库,这两个功能有详细的向导,这里不再做介绍。

1.1.2[Source Control]

此功能为源代码管理,必须结合Microsoft的Microsoft Visual SourceSafe。

1.3Tools

1.3.1[InstallScript]

Standard Dialog Sampler及Skinned Dialog Sampler查看固定的安装步骤界面,以便在脚本中调用。

Cabinet File Viewer查看安装包CAB文件的内容,经测试好像不能查看InstallShield2008制作的CAB的内容。

2安装设计界面

这里介绍的是Installation Designer页面的界面(介绍一些重要的属性)。

2.1Installation Information

2.1.1General Information

?Project Properties

Setup Languages:设置安装包的语言种类,一般默认的是简体

中文。

?Add or Remove Programs

Display Icon:在系统中的添加或删除程序的列表中显示的图标;

Display Icon Index:图标文件的图标索引;

Disable Change Button:隐藏添加或删除程序的列表中的更改按

钮;

Disable Remove Button:隐藏添加或删除程序的列表中的删除

按钮;

?Product Properties

Name:产品名称,显示在整个安装界面的产品名称;

INSTALLDIR:安装的默认路径;

?String Tables

每种安装语言都有一个节点,安装中使用的字符串。

2.2Organization

2.2.1几个基本概念

?Feature

特征,每个Feature可包含子Feature及若干个Component,每

个Feature都会出现在Feature选择界面中,一旦Feature被选

择安装其包含的Component就会被安装到系统中去;

?Component

组件,每个Component可设置需要安装的文件、写入的注册表

信息、创建的快捷方式等等;

?Setup Type

安装类型,一般默认有Minimal(压缩)、Typical(典型)、Custom(自

定义),每种安装类型包含若干个Feature。

2.2.2Setup Design

此界面可以设置Features、Components(组件)及Files(安装文件)等等。

[Setup Design]节点的右键菜单,[New Feature]菜单新建一个Feature,右键点击Feature节点,[New Feature]菜单新建一个子Feature;

[New Component]新建一个Component;[Associate Components]菜单可关联Component。

2.2.3Features

此界面可以设置Feature的属性。

Display Name:在Feature选择界面中显示的名称;

Description:在Feature选择界面中显示的描述;

Remove Installation:远程安装,Component中的此属性可覆盖Feature中的,一般默认选择Favor Local;

Destination:安装路径;

Display:显示方式,在Feature选择界面中显示的方式,一般默认选择Visible and Collapsed;

Required:是否要求安装,选择Yes,此Feature一定会被安装;

2.2.4Components

此界面可以设置Component的属性及管理Component项目。

Destination:安装路径;

Destination Permissions:设置文件夹权限(FNTS分区格式),点击右边小按钮可进入设置界面,在以后的例程中做详细介绍;

Component子节点:

?Files

点添加安装程序需要安装的文件,添加文件分为静态添加和动

态添加,静态添加只能添加文件,动态添加可以设置添加指定

文件夹下的子文件夹及文件,本人喜欢使用动态添加方式;

?Registry Data

向注册表中添加键值;

?Shortcuts

添加快捷方式;

?Advanced Settings

有九个子节点,我有些尚不知道含义,有些没有使用过,请高

手予以指教:

Application Paths:未知;

Assembly:添加Assembly,没有使用过;

COM Registration:添加COM组件,没有使用过;

File Types:添加关联文件类型,没有使用过;

Control NT Services:控制系统服务,没有使用过;

Install NT Services:安装系统服务,在以后的例程中做详细介绍;

Publishing:未知;

Device Driver:未知;

Other Data:查看Direct Editor数据。

2.2.5Setup Types

管理安装类型,在[Properies]栏设置Setup Type属性,在[Features installed in Setup Type]栏,选择此安装类型需安装的Feature。

2.3Application Data

2.3.1Files and Folders

管理安装文件夹及文件;

2.3.2Redistributables

选择需要安装的系统运行库,有些系统运行库如Borland BDE在MSI安装包中没有,必须使用InstallScript Project安装包;

2.3.3Mobile Devies

管理移动设备,此功能没有使用过。

2.4System Configuration

2.4.1Shortcuts

添加快捷方式;

2.4.2Registry

向注册表中添加键值;

2.4.3ODBC Resources

添加ODBC数据源;

2.4.4INI File Changes

添加或更改INI文件,现在各系统已经很少使用INI文件,大多数采用XML文件进行系统配置;

2.4.5Environment Variables

添加系统的环境变量;

2.4.6XML File Changes

添加或更改XML文件。

2.5Server Configuration

2.5.1Internet Infosmation Services

配置IIS网站及虚拟目录;

2.5.2Component Services

配置COM+应用程序和组件;

2.5.3SQL Scripts

配置数据库,只能配置MS SQL SERVER。

2.6Behavior and Logic

2.6.1InstallScript

编写安装程序的脚本;

2.6.2Custom Actions and Sequences

编辑自定义动作;

2.6.3Support Files/Billboards

添加安装过程中需要的文件及安装背景;

2.6.4System Search

系统条件检测,符合条件后才能安装;

2.6.5Property Manager

安装变量编辑器。

2.7User Interface

2.7.1Dialogs

编辑安装过程中使用的窗体。

2.8Media

2.8.1Path Variables

编辑安装路径变量;

2.8.2Upgrades

没有使用过;

2.8.3Releases

制作安装媒体;

2.8.4Patch Design

没有使用过。

2.9Additional Tools

2.9.1Dependency Scanners

搜索工具,有前面提到的[Perform Static Scan…]、[Perform Dynamic

Scan…]及[Import Visual Basic 6.0 Project];

2.9.2Direct Editor

命令编辑器,在这里可以查看或编辑安装程序的各类信息。

3InstallScript的事件

在InstallScript MSI Preject项目中可以根据需要编写脚本控制安装过程,下

面介绍几个重要的事件,事件分为三大类:Before Move Data(安装数据前)、

Move Data(安装数据过程中)、After Move Data(安装数据后)。

3.1Before Move Data

3.1.1OnFirstUIBefore

在第一次安装时,在复制安装数据之前触发的事件,更改这个事件

的脚本可自定义安装步骤。

下面给出InstallShield自身的脚本:

function OnFirstUIBefore()

NUMBER nResult, nSetupType, nvSize, nUser;

STRING szTitle, szMsg, szQuestion, svName, svCompany, szFile;

STRING szLicenseFile;

LIST list, listStartCopy;

BOOL bCustom;

begin

// TO DO: if you want to enable background, window title, and caption bar title // SetTitle( @PRODUCT_NAME, 24, WHITE );

// SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION );

// Enable( FULLWINDOWMODE );

// Enable( BACKGROUND );

// SetColor(BACKGROUND,RGB (0, 128, 128));

SHELL_OBJECT_FOLDER = @PRODUCT_NAME;

nSetupType = TYPICAL;

Dlg_SdWelcome:

szTitle = "";

szMsg = "";

nResult = SdWelcome(szTitle, szMsg);

if (nResult = BACK) goto Dlg_SdWelcome;

szTitle = "";

svName = "";

svCompany = "";

Dlg_SdCustomerInformation:

nResult = SdCustomerInformation(szTitle, svName, svCompany, nUser);

if (nResult = BACK) goto Dlg_SdWelcome;

Dlg_SetupType:

szTitle = "";

szMsg = "";

nResult = SetupType(szTitle, szMsg, "", nSetupType, 0);

if (nResult = BACK) then

goto Dlg_SdCustomerInformation;

else

nSetupType = nResult;

if (nSetupType != CUSTOM) then

nvSize = 0;

FeatureCompareSizeRequired(MEDIA, INSTALLDIR, nvSize);

if (nvSize != 0) then

MessageBox(szSdStr_NotEnoughSpace, WARNING);

goto Dlg_SetupType;

endif;

bCustom = FALSE;

goto Dlg_SQL;

else

bCustom = TRUE;

endif;

endif;

Dlg_SdAskDestPath:

nResult = SdAskDestPath(szTitle, szMsg, INSTALLDIR, 0);

if (nResult = BACK) goto Dlg_SetupType;

Dlg_SdFeatureTree:

szTitle = "";

szMsg = "";

if (nSetupType = CUSTOM) then

nResult = SdFeatureTree(szTitle, szMsg, INSTALLDIR, "", 2);

if (nResult = BACK) goto Dlg_SdAskDestPath;

endif;

Dlg_SQL:

nResult = OnSQLLogin( nResult );

if( nResult = BACK ) then

if (!bCustom) then

goto Dlg_SetupType;

else

goto Dlg_SdFeatureTree;

endif;

endif;

Dlg_SdStartCopy:

szTitle = "";

szMsg = "";

listStartCopy = ListCreate( STRINGLIST );

//The following is an example of how to add a string(svName) to a list(listStartCopy). //eg. ListAddString(listStartCopy,svName,AFTER);

nResult = SdStartCopy( szTitle, szMsg, listStartCopy );

ListDestroy(listStartCopy);

if (nResult = BACK) then

goto Dlg_SQL;

endif;

// setup default status

Enable(STATUSEX);

return 0;

end;

从上面代码可以看出在没有安装类型界面时没有选择自定义安装

时安装程序不会进入安装路径选择界面,这样用户不能自己选择安

装路径,在Dlg_SetupType标签节中做一些修改,使不论怎么样都

会进入安装路径选择界面,下面给出更改代码:

Dlg_SetupType:

szTitle = "";

szMsg = "";

nResult = SetupType(szTitle, szMsg, "", nSetupType, 0);

if (nResult = BACK) then

goto Dlg_SdCustomerInformation;

else

nSetupType = nResult;

if (nSetupType != CUSTOM) then

nvSize = 0;

FeatureCompareSizeRequired(MEDIA, INSTALLDIR, nvSize);

if (nvSize != 0) then

MessageBox(szSdStr_NotEnoughSpace, WARNING);

goto Dlg_SetupType;

endif;

bCustom = FALSE;

nResult = SdAskDestPath(szTitle, szMsg, INSTALLDIR, 0);

if (nResult = BACK) goto Dlg_SetupType

goto Dlg_SQL;

else

bCustom = TRUE;

endif;

endif;

3.1.2OnMaintUIBefore

在修改或卸载时,在复制安装数据之前触发的事件,例如安装程序

在安装时添加了一个NT Service,在卸载时安装程序不会将将此服

务反安装,这时就需要在这个事件中通过脚本LaunchApp

(APPLICATION, “‐uninstall”)手工删除服务。

3.1.3OnSQLLogin

MS SQL SERVER数据库安装登录函数,InstallShield将此函数列出在

InstallScript中应该是便于用户自行修改此函数。

3.2 Move Data

这个类型当中的事件一般来说不需要改动。

3.2.1OnGeneratingMSIScript

在Action(动作) LauchConditions之前执行;

3.2.2OnGeneratedMSIScript

在Action(动作) LauchConditions之后执行;

3.2.3OnInstallFilesActionBefore

在Action(动作) InstallFiles之前执行;

3.2.4OnInstallFilesActionAfter

在Action(动作) InstallFiles之后执行;

3.2.5OnMoving

在Action(动作) InstallInitialize之后执行;

3.2.6OnMoved

在Action(动作) GeneratedMSIScript之前执行;

3.3After Move Data

3.3.1OnFirstUIAfter

在第一次安装时,在复制安装数据之后触发的事件,例如有一个系

统需要将安装路径设置FTP虚拟目录,如果在安装数据之前就设置

的话,该路径不存在,无法设置成功,因此需要在这个事件中设置。

3.3.2OnMaintUIAfter

在修改或卸载时,在修改或卸载数据之后触发的事件;

3.3.3OnEnd

在安装完成之后触发的事件,即点击【完成】按钮后触发的事件,

例如用附加数据库方式创建数据库时可在此事件中进行。

4几个技术问题介绍

4.1数据库设置

在安装程序中设置数据库,有两种方法:一种采用命令行附加数据库文件,一种是通过SQL Script脚本创建数据库,对于编写SQL Script过于复杂,或创建数据库时间过长时建议采用第一种方法。

4.1.1命令行附加数据库

1.将数据库文件(a_data.mdf和a_log.ldf)插入Support Files中;

2.定义变量:

STRING psvSQLsvr, psvSQLusr, psvSQLpwd;

BOOL bvWindowsLogin;

3.定义CreateDataBase函数:

prototype CreateDataBase(STRING,STRING,STRING);

4.编写CreateDataBase函数:

function CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd)

STRING szWaitTxt,szdatabase,path,path3;

begin

path=TARGETDIR^"Data\\a_data.MDF";

path3=TARGETDIR^"Data\\a_log.LDF";

szWaitTxt=" 正在创建数据库....";

SdShowMsg (szWaitTxt, TRUE);

Delay(3);

CopyFile(SUPPORTDIR^"a_data.MDF",path);

CopyFile(SUPPORTDIR^"a_log.LDF",path3);

szdatabase = "/U "+svSQLusr+" /P "+svSQLpwd+" /S "+svSQLsvr+" /Q \"exec sp_attach_db N'a' , N'"+path+"',N'"+path3+"'\"";

if (LaunchAppAndWait("osql.exe", szdatabase,WAIT)<0) then;

MessageBox ("数据库创建失败!请确您的系统中已安装 Microsoft SQL Server 2000.\n如仍无法解决,请联系系统供应商!",SEVERE);

SdShowMsg (szWaitTxt, FALSE);

return -1;

endif;

end;

5.获取数据库的登录信息,如果没有创建数据库的脚本,安装程序

不会弹出SQL登录验证界面,需要编写代码:

Prototype number SQLLogin(); //定义登录函数

function SQLLogin ()

number nResult, nSize;

STRING sMessage, sTemp;

begin

Dlg_Sql:

SQLRTInitialize2 ();

nResult = SQLServerSelectLogin(psvSQLsvr, psvSQLusr, psvSQLpwd, bvWindowsLogin );

if (nResult = BACK) return BACK;

nSize=MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "IS_SQLSERVER_STATUS", sTemp, nSize );

if(sTemp!="0") then

nSize = _MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "IS_SQLSERVER_STATUS_ERROR", sMessage, nSize );

if( nSize = 0 ) then

sMessage = SdLoadString( IDS_IFX_SQL_ERROR_LOGIN_FAILED );

endif;

MessageBox( sMessage, MB_OK );

goto Dlg_Sql;

endif;

return 0;

end;

6.在OnFirstUIBefore事件中调用SQLLogin函数:

Dlg_SdSQL:

nResult = SQLLogin();

if (nResult = BACK) goto Dlg_Custom;

7.在OnEnd事件中调用CreateDataBase函数:

function OnEnd()

begin

if !MAINTENANCE then

CreateDataBase(psvSQLsvr,psvSQLusr,psvSQLpwd); // 创建和 优化数据库

endif;

end;

4.1.2SQL Script

在Installation Designer中的SQL Scripts插入创建数据库的脚本即

可,值得注意的是脚本中的文本替换,如果脚本中有安装前未知信

息(在安装过程中输入的),如数据库的安装路径,使用软件的公

司名称等等,需要使用文本替换,方法如下:

1.创建数据库的脚本片段

CREATE DATABASE [test] ON (NAME = N'test_Data', FILENAME = N'%INSTALL_DIR%DATA\test_Data.MDF' , SIZE = 4, FILEGROWTH = 0) LOG ON (NAME = N'test_Log', FILENAME = N'%INSTALL_DIR%DATA\test_Log.LDF' , SIZE = 4, FILEGROWTH = 10%)

GO

use test

GO

INSERT INTO [dbo].[use_company] ( [company _name])

VALUES ('%MY_COMPANY_NAME%')

2.在Installation Designer中的Property Manager添加一个

MY_COMPANYNAME的属性,如下图所示

3.在OnFirstUIBefore事件中添加代码:

Dlg_UserInfo:

szMsg = "请正确输入用户名称及公司名称,以便本系统显示的信息正确!";

nResult = SdRegisterUser(szTitle, szMsg, szUserInfo, szCompanyName);

MsiSetProperty(ISMSI_HANDLE,"MY_COMPANYNAME", szCompanyName);

if (nResult = BACK) goto Dlg_SdLicense;

4.在Installation Designer中的SQL Scripts的Text Replacement页面

添加两个替换参数,如下图所示:

4.2InstallScirpt调用动态运行库中的函数

安装过程中有些设置是InstallShield无法做到的,需要其他的编程软件实现,其他的编程软件可以编写成可执行的应用程序(EXE文件),通过

LaunchApp和LaunchAppAndWait调用,也可以编写成动态运行库(DLL文件),InstallShield调用其中的函数,我使用的是Borland Delphi编程软件,我编写了一个将安装文件夹设置为FTP虚拟目录的动态运行库,在InstallShield中调用。

Delphi的源代码如下:

library FtpSetup;

uses

SysUtils, Classes, COMOBJ, Variants;

{$R *.res}

procedure FtpSet(siteName, appPath: PCHAR);stdcall;

var

FTPSite, FTPServer, FTPRoot, FTPVDir: Variant;

newSiteName, newAppPath:string;

begin

newSiteName:= siteName;

newAppPath:= appPath;

FTPSite := CreateOleObject('IISNamespace');

FTPSite := FTPSite.GetObject('IIsFtpService', 'localhost/MSFTPSVC');

FTPServer := FTPSite.GetObject('IIsFtpServer', '1');

FTPRoot := FTPServer.GetObject('IIsFtpVirtualDir', 'Root');

FTPVDir := FTPRoot.Create('IIsFtpVirtualDir', newSiteName);

FTPVDir.Path := newAppPath;

FTPVDir.AccessRead := true;

FTPVDir.AccessWrite := true;

FTPVDir.SetInfo;

FTPSite := Unassigned;

FTPServer := Unassigned;

FTPRoot := Unassigned;

FTPVDir := Unassigned;

end;

exports

FtpSet;

begin

end.

InstallScript脚本如下:

函数定义

prototype stdcall FtpSetup.FtpSet (POINTER,POINTER);

调用函数

DLL_FILE= SUPPORTDIR^"FtpSetup.dll";

nResult = UseDLL (DLL_FILE);

if (nResult = 0) then

svString1 = "drawingfile";

svString2 = TARGETDIR^"DrawingFilePath";

psvString1 = &svString1;

psvString2 = &svString2;

FtpSet(psvString1,psvString2);

UnUseDLL (DLL_FILE);

else

MessageBox("创建FTP服务失败,请手工设置。",SEVERE);

endif;

值得注意的是函数的编写及调用都采用stdcall方式。

4.3自定义窗体

4.3.1Basic MSI Project工程项目

1.创建自定义窗体,可参考标准窗体的各种设置,主要是窗体

Behavior的设置,下面以一个例子说明创建过程;

2.创建一个记录登录服务器的信息的自定义窗体,该窗体需要录入

服务器的IP地址、用户名及口令,将录入信息记录到XML文件

中;

3.如下图所示,在User Interface的Dialogs的All Dialogs点击右键,

选择New Dialgo菜单,进入自定义窗体向导;

4.选择Blank Dialog创建一个空白窗体,重命名NewDialog1,如

ServerLogin;

5.如下图所示选择ServerLogin下的Chinse(Simplified)节,可设计此

窗体;

6.添加三个Text Area,分别将Text属性更改为服务器IP:、用户名:

及口令:,添加三个Edit Field,分别录入Property Name(属性名称)为MY_SERVER_IP、MY_SERVER_USER及MY_SERVER_PWD,

将口令的录入框的Password属性的值更改为True,添加三个

Push Button,分别是上一步、下一步及取消,如下图所示:

7.如果想将此窗体插入CustomerInformation窗体与SetupType之

间,可选择CustomerInformation的Behavior的Next按钮,如

下图所示,将Event的NewDialog的Argument更改为ServerLogin

窗体;

8.选择ServerLogin的Behavior的Next按钮,新增一个NewDialog

事件,将Argument更改为SetupType窗体,Condition更改为1,

同理在上一步按钮中添加返回CustomerInformation窗体的事

件,在取消按钮中添加Event为SpawinDialog,Argument为

CancelSetup,Condiiton为1,如下图所示:

9.可以在Behavior and Logic中的Custom Actions and Sequences中

可以看出窗体的执行顺序,如下图所示:

10.在XML File Changes节中添加记录信息,这里不再详述。

4.3.2InstallScript MIS Project工程项目

1.创建自定义窗体需要注意在InstallScript中如何调用自定义窗体,

并将窗体的属性复制公共属性,下面以一个例子说明调用;

2.创建一个记录登录服务器FTP的信息的自定义窗体,该窗体需要

录入服务器的IP 地址、

FTP 端口、FTP 用户名及口令,将录入信

名NewDialog1,如SdComputerInfo ,编辑窗体

如下图所示:

ID 为12011,在Direct Editor 的Control 中查出各控件

四个属性LOCALHOST 、LOGINUSER 、

ipt 中新建一个名为computerinfo.rul 的脚本文件,脚

本如下:

on

// ID of Back button

// ID of edit box

efine RES_EDITPWD 1306

Title)

息记录到XML 文件中;

3. 在User Interface 的Dialogs 的All Dialogs 点击右键,选择New

Dialgo 菜单,进入自定义窗体向导,选择Blank Dialog 创建一个

空白窗体,重命4. 在Direct Editor 的Dialog 中查出该窗体的ID ,我创建的这个自定

义窗体的的ID ;

5. 在Property Manager 中新建LOGINPWD 、FTPPORT ;

6. 在InstallScr prototype SdComputerInfoDialog(string);

#define RES_DIALOG_ID 12011 // ID of custom dialog

#define RES_PBUT_NEXT 1 // ID of Next button

#define RES_PBUT_CANCEL 1310 // ID of Cancel butt #define RES_PBUT_BACK 1308 #define RES_EDITIP 1302 #define RES_EDITUSER 1304

#d #define RES_EDITPORT 1312

function SdComputerInfoDialog(sz

STRING szDialogName, svName, svCompany;

Value;

;

G szComputerIP, szFTPUser, szFTPPwd, szFTPPort;

gin

, "", RES_DIALOG_ID);

an error; then terminate.

geBox ("Error in defining dialog", SEVERE);

abort;

FALSE;

// Loop until done.

eturn the next dialog event.

log (szDialogName);

t.

clicked the window's Close button.

able to display dialog. Setup canceled.", SEVERE);

alogName, hwndDlg, 0, szSdProduct );

Size );

;

Name, RES_EDITPWD, szFTPPwd);

zDialogName, RES_EDITPORT, szFTPPort);

ISMSI_HANDLE,"LOGINPWD", szFTPPwd);

NUMBER nResult, nCmd BOOL bDone;

HWND hwndDlg STRIN number nSize;

be szDialogName = "SdComputerInfo";

nResult = EzDefineDialog (szDialogName, "" if (nResult < 0) then

// Report Messa endif;

bDone = repeat

// Display the dialog and r nCmdValue = WaitOnDia // Respond to the even switch (nCmdValue)

case DLG_CLOSE:

// The user Do (EXIT);

case DLG_ERR: MessageBox ("Un abort;

case DLG_INIT:

hwndDlg = CmdGetHwndDlg( szDialogName );

SdGeneralInit( szDi SdSetDlgTitle(szDialogName, hwndDlg, szTitle);

nSize=MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "LOCALHOST", szComputerIP, nSize );

nSize=MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "LOGINUSER", szFTPUser, nSize );

nSize=MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "LOGINPWD", szFTPPwd, nSize ); nSize=MAX_PATH;

MsiGetProperty( ISMSI_HANDLE, "FTPPORT", szFTPPort, n CtrlSetText(szDialogName, RES_EDITIP, szComputerIP) CtrlSetText(szDialogName, RES_EDITUSER, szFTPUser);

CtrlSetText(szDialog CtrlSetText(s case RES_PBUT_CANCEL: Do (EXIT);

case RES_PBUT_BACK:

bDone = TRUE;

case RES_PBUT_NEXT:

CtrlGetText (szDialogName, RES_EDITIP, szComputerIP); CtrlGetText (szDialogName, RES_EDITUSER, szFTPUser);

CtrlGetText (szDialogName, RES_EDITPWD, szFTPPwd);

CtrlGetText (szDialogName, RES_EDITPORT, szFTPPort); MsiSetProperty(ISMSI_HANDLE,"LOCALHOST", szComputerIP); MsiSetProperty(ISMSI_HANDLE,"LOGINUSER", szFTPUser); MsiSetProperty(

MsiSetProperty(ISMSI_HANDLE,"FTPPORT", szFTPPort);

= TRUE;

leaseDialog (szDialogName);

n, display name and company.

dValue = RES_PBUT_NEXT then

return BACK;

endif;

end;

efore 事件中添加

nResult = SdComputerInfoDialog(szTitle);

if 8. 在XML File Changes 节中添加记录信息,这里不再详述。

5 例子

如何制作安装,如有需要可留下Email 。

5.1 B 子实现MS SQL SERVER 数据库、https://www.doczj.com/doc/b38753929.html, 网站、系统服务、应用

roject Name’ subfolder(在工程文件夹中创建

子文件夹),点击OK ;

bDone endswitch;

until bDone;

// Close the dialog.

EndDialog (szDialogName);

// Remove the dialog from memory.

Re // If dialog is closed with Next butto

if nCm return NEXT;

else

7. 在OnFirstUIB Dlg_ComputerInfo:

szTitle = "设置服务器信息";

(nResult = BACK) goto Dlg_UserInfo;

上面介绍了一些InstallShield 的知识,下面通过两个例子介绍程序,由于空间小不再采用图形显示asic MSI Project 工程项目

这个例程序安装。

1. 创建一个新的工程,选择Basic MSI Project 工程类型,在Project Name

中填入工程名称:基本包测试,在Location 中选择存放路径,并选

择Create project file in ‘P

2.如果设置了Source Control(源代码管理),会弹出Add to Source Control(添加到源代码管理中)界面,可根据个人需要选择OK或Cancel;

3.选择Installation Designer界面;

4.在Installation Information的General Information页中的Add or Remove Programs项中更改Publisher(公司名称)属性:默默软件公司,在Porduct Properties项中更改INSTALLDIR(默认安装路径):

d:\MyPrograms;

installshield打包完整示例

前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的Project Assistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思。这个安装程序虽然比较简陋,在行家眼里可能是小菜一碟,但是也花了笔者一个星期的时间,阅读了很多资料,啃了好几天英文help,集成了很多先驱者的经验,也费了自己不少心血做成的,对每一段代码的用处、每一个用到的函数都进行了详细的说明,因此转载时请务必保留转载出处和由艾泽拉斯之海洋女神出品的字样;如需刊登,请与作者联系。在此要感谢吞硬币的小猪,天下晓明,余满青,海洋C++乐园(此海洋不是彼海洋)等大虾在互联网上的无私奉献,他们的贴子和博客给了我很大启示。 因为本人是做java出身的,因此对这种类C++语言还是第一次接触,有理解不当之处,请朋友们指正。欢迎Email至little_fairycat@https://www.doczj.com/doc/b38753929.html, 正文 需求:公司做了一个软件产品, 1.该软件运行需要JDK环境(不是JRE,因为该软件要向windows注册一个服务,用到了 JavaService,JDK才支持这个功能;不过这里侧重于判断是否安装了某软件是否安装,而不是纠缠于该装JDK还是该装JRE); 2.由于是Server-Client形式的,需要允许用户选择安装组件,比如A机只装Server端,B机 只装Client端; 3.文档不打包在安装程序里,直接存放在光盘文件夹下方便用户查看,同时允许用户指定是否安 装文档到计算机上(为什么这样做,后面说明详细原因);

InstallShield详细制作说明

虽然网上关于InstallShield的制作说明已经很多,但是看的时候还是会有些晕乎乎的,不得不说很复杂。前段时候做了一次,后面需要升级,在重新做的时候发现有些地方自己又忘了,所以有必须将自己看的教程和实际操作的体会结合起来,认真的写个特别详细的制作说明,使步骤尽可能简化清晰,为了自己也为其他同仁。各位可以先下载已做好的安装包,看看是否符合你的需求。 一、在制作安装包前,先整理一下安装文件 先来看“先决条件安装文件”,这里我们用来存放运行该产品需要的基本环境(比如:Net Framework、数据库等)的安装文件。另外还放了图标和许可协议,制作的时候需要,放一起便于管理。 再来看看“XX软件”,可以看看QQ在安装后的开始菜单里,会先有腾讯软件->QQ2013->QQ 这样的目录结构,这样的结构使得一个公司的产品放在一起便于用户查看。所以我也采用这种结构来先整理目录结构,这个结构也是用户安装产品后的目录结构。 上面APP_1和APP_2是独立的应用分开放,外面的数据库配置是公用部分放最外面。当然,“XX产品”里面的目录需要根据你实际情况来决定。不过,在你制作安装包前,一直要试一下各个exe程序能不能正常运行,否则做好后运行不了,找不到原因就麻烦了,毕竟快捷方式只是个链接。 这里说明一下为什么会有这个DataBaseSetting.exe呢,因为我们的产品可能需要新建数据库、需要修改注册表等操作,但是用InstallShield来做这些,对于不熟悉的人来说还是很麻烦的,

或许就不能做,所以还是用C#写了个小程序来做这些工作要简单的多,只是要多点下按钮,但更灵活。 二、新建一个“InstallScript MSI Project”工程 三、在引导条上配置基本属性 Project Assistant是类似于界面操作

Installshield9使用说明

Installshield 9 使用说明 一、向导部分 刚打开文档时的主UI 最近编辑文档 以上为intallshiel后的主UI当前还未打开任何的文档 新建文档 新建文档类型通 常选择第一个就 可以

向导 UI 1 2 3 4 5 6 7 8 9 程序的基本信息,包括公司名称,程序名称,版本号以及公司网址等。以上信息将会在安装过程中的UI中显示。

2.Installation architecture: 组件的建立,类似于office安装过程中的程序模块选择。例如。在office安装过程中要全部安装,还是只安装word,excel等。 3.Application Files 文件的添加:在此处将所有的程序要使用到的文件添加到这里。主要包括以下文件夹 3.1 script-defined folders:脚本定义文件夹:放到这里面的文件,其安装目录由脚本中FeatureSetTarget(MEDIA,"",para2);函数来重新定义。para1在此定义的文件夹名。Para2为目标文件夹名 3.2 application target folder:安装目标文件夹。即实际安装过程中的目标文件夹。一般在安装过程中由用户来选择,当然可以指定默认。 3.3 program files:program file文件夹,如果有特定的文件必须放在此文件夹里。就放这个位置吧。 3.4 windows:同上。这两个文件夹是系统自动搜索的。如果是自己安装的操作系统,

比如将操作系统安装在其它盘符,一样可以搜到 4.Application redistributables 插件选择安装:如果你的程序需要以上的动态库连接,就打上 5Application shortcuts 快捷方式的建立点击New以后,会出现选择文件的对话框。当然是已经在Application Files 中添加过的文件。默认的可执行文件会自动添加。如果不想用删掉即可

InstallShield安装与制作

InstallShield安装与制作 InstallShield安装与制作 一、InstallShield安装 1、点击[InstallShield.12.豪华完全 版].installshield12.Premier.Edition.exe进行安装 2、到安装过程中的组件步骤时选择自定义/定制 3、在语言中选择简体中方(制作了的安装包才能是中文的,否则是英文) 二、InstallShield 破解 1、在安装的最后一步选择激活,点击下一步 2、随便输入一串激活码,如(1111111111……),点击下一步. 3、提示出错,不用管,选择电子邮件激活,下一步 4、出现一串的序列码,拷贝它。 5、打开[InstallShield.12.豪华完全版].keygen.exe;粘上那串序列码,点create^,会生成一串很长的序列码,拷贝它。 6、回到第四步的对话框,粘上序列码,ok. 注:在激活的过程中,把网络断开 (一) 打开工程 点击Create a new Project来创建一个工程。

IS将安装工程根据工程的特点分了几大类:InstallScript ;Windows Installer;Universal installer。其中,Universal这个比较好理解,大概就是用来做跨平台的安装程序。InstallScript和Windows Installer的区别,我到是一直不是很清楚,大概意思就是如果你使用InstallScript模式是使用脚本来驱动安装界面,使用Windows Installer则主要是使用操作系统自带的安装服务来驱动安装。在每个大类里面有划分了不同的小类。这里请参考IS帮助中的说明。 注: Project Name: 你的工程名 Location: 这个打包程序存放的路径,一般在安装的过程中自动创建这个目录 (二) 工程助手页面 利用工程助手就可完成应用程序的制作且能满足要求(除了附加数据库等操作)。工程助手的应用从图中的:应用程序信息,从左往右一步步设计就可以了。 1、Application Information:程序信息

InstallShield脚本语言的编写

InstallShield脚本语言的编写 编号:QA001188 建立日期: 1999年6月16日最后修改日期:1999年6月16日 InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加。 一.基本语法规则 1.变量 BOOL 布尔型值为TRUE(1)或FALSE(0) CHAR 字符型一字节长的(8bit)的字符 HWND 窗口句柄用来存放窗口句柄 INT 整型两字节长的整数 LIST 列表型指向InstallShield列表,用ListCreate和ListDestroy LONG 扩展数值型 LPSTR 扩展指针 NUMBER 数值型存放四字节长的数值,范围从-2147483648到+2147483647 POINTER 指针型 SHORT 短数值型 STRING 字符串型十分类似VC中的LPCTSTR 变量如同标准的C语言,在使用前需要事先声名。变量通常在两个位置进行声名,一是主程序外部,这样的变量为全局变量,二是各函数的变量声名区,这样的变量是局部变量。 2.操作符 一般的与C语言相同操作符,在这里不做详解,以下主要介绍比较特殊的操作符, (1) + , - , * , / 以上四个操作符与C语言中意义和用法都相同。 (2) && 与操作,与C语言中用法相同,例:x1 && x2 (3) || 或操作,与C语言中用法相同,例:x1 || x2 (4) ! 非操作,与C语言中用法相同,例:!x1 (5) * 指针操作,类似C语言中的*

(6) & , | , ^ , ~ , << , >> 分别为位与,位或,按位异或,按位取反,左移和右移,其意义和用法都与C语言中基本相同。 (7) . 该操作符用于结构,用来得到结构的子项,与Delphi的 . 用法类似,例如: typedef SETTINGSREC begin BOOL bSwitchOn; STRING szMssg[255]; INT nVal; end; SETTINGSREC settings; program settings.bSwitchOn = FALSE; settings.szMssg = "Off"; settings.nVal = 0; (8) = 既可作为赋值号,同时也做等于符,例如: str1 = "String"; if str1="String" then endif; (9) & 取地址符,与C语言用法类似。 (10) < , > , = , <= , >= , != 分别表示小于,大于,等于,小于等于,大于等于,不等于 (11) + , ^ , % 用于字符串的操作。 (12) -> 结构指针,与C语言中用法类似。 (13) @ 用于得到Resource窗口中定义的字符串,例: szReferenceFile = svDir ^ @PRODUCT_KEY; 3.函数 InstallShield的函数使用前同样需要声名,函数的参数传递方式十分类似C语言,例如

InstallShield-PDF 教程

InstallShield使用 本文使用的InstallShiled的版本是InstallShiled 2008 Premier Edition,只介绍制作Base MSI Preject及InstallScript MSI Preject安装包。 1菜单 大多数菜单与其他软件一样,这里只介绍几个有特点的。 1.1Go 可以通过此菜单到任意一个设计界面中。 1.2Project 1.1.1[Perform Static Scan…]及[Perform Dynamic Scan…] 静态及动态搜索应用程序所需要的系统对象及Dll运行库,这两个功能有详细的向导,这里不再做介绍。 1.1.2[Source Control] 此功能为源代码管理,必须结合Microsoft的Microsoft Visual SourceSafe。 1.3Tools 1.3.1[InstallScript] Standard Dialog Sampler及Skinned Dialog Sampler查看固定的安装步骤界面,以便在脚本中调用。 Cabinet File Viewer查看安装包CAB文件的内容,经测试好像不能查看InstallShield2008制作的CAB的内容。 2安装设计界面 这里介绍的是Installation Designer页面的界面(介绍一些重要的属性)。 2.1Installation Information 2.1.1General Information ?Project Properties Setup Languages:设置安装包的语言种类,一般默认的是简体 中文。

Installshield+中文系列教程

Installshield 12 中文系列教程之 Installscript 项目(一) ××××××××××××××××××××××××××××××××××××××× ×××××××× 声明:本文为《打包技术网》原创,请保留此声明并注明出处,仅供网友学习使用,勿用于 商业用途。 作者:棒槌_007 联系方式:QQ 113984419 MAIL:bangchui_007. 说明:本人E文实在一般,文中有翻译不准确的地方,请各位见谅。 ××××××××××××××××××××××××××××××××××××××× ×××××××× 这个部分通过带领你使用InstallShield新建,编译,运行来增强一个使用安装脚本的安装 程序。 这个教程划分了一些列的步骤。在第一步后“第一步:建立,编译,测试项目”其他的步骤能够按照任意的顺序单独的运行,所以你可以集中注意力在这个部分的相关的容上。 在这个教程中,你将要学习到如何完成一个安装程序中要执行的多个任务,包括: ?安装文件 ?设置快捷方式和注册表数据 ?条件安装数据 ?更改安装过程中的用户界面 ?编译发布镜像文件 ?测试安装 这些容在的相关贯穿整个帮助支持库。 第一步:建立,编译和测试项目 这个步骤示如何建立一个脚本安装项目,编译发布文件,测试安装程序。完成这个步骤后, 你将认识到如何去: ?使用项目助手建立一个新项目 ?制定安装项目的整体属性

?定义安装类型、功能部件、组成部分和文件 ?编译一个发布文件的副本 ?从InstallShield用户界面运行你的安装程序 你在本教程中将要创建、配置的安装程序叫做 Tutorial APP 。这个程序的源文件在安装目录下的 Samples\IsDevTutorial 子目录下面。

InstallShield使用详解

目录 前言 (2) 第一章集成开发环境 (3) 第二章 INSTALLSHIELD基本操作 (4) 2.1.创建工程 (4) 2.2.通过 PROJECT ASSISTANT(工程助手)来设计工程。 (8) 2.3.安装包发布 (19) 第三章 INTALLSHIELD脚本语言 (23) 3.1脚本语言介绍 (23) 3.2实例一:注册表的处理 (25) 3.3实例二:安装前执行,运行其他的软件安装。 (28) 第四章其他的安装包制作工具 (30) 4.1 INSTALLAWARE (30) 4.2 WISE (31) 4.3 ADVANCED INSTALLER (33) 4.4工具比较 (33)

前言 InstallShield是基于Windows平台的为软件发行方提供领先的基于windows的安装程序解决方案,能够制作强大可靠的Windows Installer(MSI)、InstallScript以及跨平台的安装程序,是安装工具领域事实上的标准,已经成为安全安装软件的标准解决方案,。在下面的内容当中,将以10HMITOOL项目实例讲解InstallShield的使用方法,使用的版本为InstallShield2008。

第一章集成开发环境 InstallShield除了本身的开发环境外,还为vs2005提供了辅助功能,开发人员可以直接在vs2005环境中创建InstallShield工程,具体操作如下: 1.选择开始菜单->所有程序->Macrovision->InstallShield 2008 for Visual Studio 2005 图1-1 运行InstallShield 2008 for Visual Studio 2005 首次运行会出现如下的向导界面:在这里介绍了所有工程类型,用户可以根据自己的需要选择工程类型。 图1-2 首次进入

Installshield入门指南

Installshield入门指南 1 说明(适用范围) 阅读对象:IS的初用者;本指南的校对、补充、修改者。 适用版本:IS10~IS11,如果您使用的不是这个版本段的版本,那么还是不要再往下看了。 目的:帮助初用者建立一个简单的安装包,能在建立这个安装包的过程中了解IS的基本情况。 强调:本指南不会对IS中的每一个菜单进行介绍,只对用到的做一个初步讲解2 IS介绍 2.1IS介绍 这个东东据说是现在使用最广泛的安装包制作工具。它是从共享软件出身,一直发展到一个商业软件。现在又被收购了。我是从6.22版本开始接触它的。从6.0到9.0版本,它的每一个版本大概都分为三个系列,就如同操作系统WINDOWS XP一样,每一个版本都分为Professional,Express,Developer。简单的可以这样解释(详细区别大家可以到网上搜,应该很多): Express功能最少,使用也最简单,据说是限制使用脚本功能等。适合制作常规的安装包,本人没有使用过。 Professional开放的功能较多,包括脚本功能。但还是有一些限制,我了解的就是无法编辑界面(罕见使用),缺少一些外部库等等。 Developer不用说是最全的了。适合于能折腾的人。 从10版本开始,IS最大的变化就是界面变了。变的花哨了许多,功能更多了。让我人最感兴趣的就是增加了对SQL的支持,最终加入了对XML的支持。而且,从10开始,名字也有些改变:Premier Edition对应原来的Developer,其他的还是和原来一样。 以下的介绍全部是针对Installshield Premier Edition11的,请大家务必注意。 2.2IS各工程介绍 IS将安装工程根据工程的特点分了几大类:InstallScript ;Windows Installer;Universal installer。其中,Universal这个比较好理解,大概就是用来做跨平台的安装程序。InstallScript 和Windows Installer的区别,我到是一直不是很清楚,大概意思就是如果你使用InstallScript模式是使用脚本来驱动安装界面,使用Windows Installer则主要是使用操作系

InstallShield setup文件-静默安装介绍

Open topic with navigation Setup.exe and Update.exe Command-Line Parameters https://www.doczj.com/doc/b38753929.html,/installshield20helplib/Content/helplibrary/IHelpSetu p_EXECmdLine.htm#ref-command-linetools_942613717_1039936 InstallShield 2013 Setup.exe can accept a number of command-line parameters. Update.exe (available only for Basic MSI and InstallScript MSI projects) accepts nearly all of the same command-line parameters. Using these parameters, end users can specify such data as the language that the installation should run in and whether to launch Setup.exe silently. For Basic MSI and InstallScript MSI, end users can also pass parameters through Setup.exe to the included .msi file. Note: Command-line options that require a parameter must be specified with no space between the option and its parameter. For example, Setup.exe /v"ALLUSERS=2" is valid, while Setup.exe /v "ALLUSERS=2"is not. Quotation marks around an option’s parameter are required only if the parameter contains spaces. If a path within a parameter contains spaces, you may need to use quotation marks within quotation marks, as in the following example: Setup.exe /v"INSTALLDIR=\"c:\My Files\"" Project: Some of the command-line options apply to only certain project types. Project-specific information is listed for each option. Built-In Command-Line Parameters This section describes valid command-line parameters for Setup.exe. The parameters are organized into the following categories: ? Silent Installations ? Special Installation Modes ? Passing Data to the Installation ? Download and Cache Locations (Basic MSI and InstallScript MSI Projects) ? Debugging ? SMS Data

InstallShield_2010_打包实例

第一部分:基本设置 (1) 新建Installscript MSI Project (1) 引导动作条 (2) 1. Application Information (2) 2. Installation Requirement (3) 3. Installation Architecture (3) 4. Application Files (5) 5. Application Shortcuts (7) 6. Application Registry (9) 7. Installation Location (10) 8. Build Installation (11) 第二部分:XML文件修改 (11) 第三部分:自定义对话框 (16) 第四部分:安装windows服务 (18) 一、脚本方式 (18) 二、视图配置方式 (21) 添加Install Service组件 (21) 添加Control Service组件 (24) 第五部分:脚本编程 (26) Setup.rul文件头部 (27) OnFirstUIBefore (28) OnFirstUIAfter (31) SetTomportInfo (34) 完整脚本代码 (36) 第六部分:参考文章 (43)

注:我使用的是Installshield 2010 Premier Edition,安装后自行汉化,所以有部分截图有中文; 2010 SP1的官方下载地址: https://www.doczj.com/doc/b38753929.html,/product/is/2010/domestic/premier/installS hield2010.exe 第一部分:基本设置 新建Installscript MSI Project 打开Installshield 2010 Premier Edition,新建一个Installscript MSI Project,这种被称之为半脚本程序,因为兼具Basic Project基本类型和Installscript Project全脚本类型两者的优点。 选择类型为Windows Installer | InstallScript MSI Projcet,输入工程名,指定工程所在的文件夹。 界面会切换到Project Assistant,我们先从这里开始把工程的基本组件和基本文件建立好。

installshield学习笔记

安装前 设置界面公司标识 在OnBegin函数中,添加如下脚本: SetTitle(IFX_PRODUCT_NAME + "-Infomedia", 0, BACKGROUNDCAPTION); 安装中 安装 RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); if(RegDBKeyExist("SOFTWARE\\Microsoft\\.NETFramework\\policy\\")<0)then if(AskYesNo("尚未安装!\n是否安装",YES))then if(LaunchAppAndWait(SUPPORTDIR^""," /norestart",WAIT)<0)then SprintfBox(MB_OK,".NET安装","安装框架发生意外!"); else InstallNet=TRUE; endif; else InstallNet=FALSE; endif; else endif; 注:InstallNet在开始定义BOOL类型 修改OnFirstUIAfter中的脚本 以判断是否重启。 vbs控制IIS 直接使用IIS自带的脚本来做的.基本上IIS的所有操作都可以用这个脚本完成.目录在C:\inetpub\AdminScripts 管理安装服务器角色

参数名称:

修改IIS中ISAPI和CGI限制 %windir%\\system32\\inetsrv\\ set config /section:isapiCgiRestriction /[path='C:\Windows\\Framework\'].allowed:True 控制文本框 自定义界面,如果控制文本框

1607:无法安装 InstallShield Scripting

重新安装InstallScript 引擎 要从InstallShield Developer 重新安装InstallScript 引擎,请按照下列步骤操作: 1.单击“开始”,单击“程序”,指向“附件”,然后单击“Windows 资源管理器”。 2.打开下面的文件夹:C:\Program Files\InstallShield\Developer\Redist\Language Independent\i386。 3.双击“Isscrpt.msi”。 4.按照屏幕上的指示操作。 从虚拟驱动器运行安装程序 如果您从使用SUBST 命令创建的虚拟驱动器运行安装程序,则可以删除该虚拟驱动器并从物理硬盘运行安装程序。要删除虚拟驱动器,请单击“开始”,单击“运行”,键入subst drive_letter:/d,然后单击“确定”。 注册Idriver 和Msiexec 要注册Idriver 和Msiexec,请按照下列步骤操作: 1.单击“开始”,单击“运行”,键入C:\Program Files\Common Files\InstallShield\Developer\7\Intel 32\IDriver.exe /REGSERVER,然后单击“确定”。 2.单击“开始”,单击“运行”,键入C:\Windows\System32\msiexec.exe /REGSERVER,然后单击“确定”。 更改权限 使用管理员帐户登录到Windows XP 计算机,验证您是否对C:\Windows\Installer 文件夹拥有正确的权限。按照下列步骤操作: 1.单击“开始”,单击“程序”,指向“附件”,然后单击“Windows 资源管理器”。 2.单击“工具”菜单上的“文件夹选项”。 3.单击“查看”选项卡。 4.单击“显示所有文件和文件夹”,然后单击“确定”。 5.定位到文件夹C:\Windows\Installer。 6.右键单击Installer 文件夹,然后单击“属性”。 7.单击“安全”选项卡。 8.单击“System”,然后验证是否选中了“完全控制”复选框。 9.单击“Administrators”,然后验证是否选中了“完全控制”复选框。 10.单击您的用户名,然后验证是否选中了“完全控制”复选框。

Installshield终极使用教程

Installshield使用 1 说明(适用范围) 1.1IS各工程介绍 IS将安装工程根据工程的特点分了几大类:InstallScript ;Windows Installer;Universal installer。其中,Universal这个比较好理解,大概就是用来做跨平台的安装程序。InstallScript 和Windows Installer的区别,我到是一直不是很清楚,大概意思就是如果你使用InstallScript模式是使用脚本来驱动安装界面,使用Windows Installer则主要是使用操作系统自带的安装服务来驱动安装。在每个大类里面有划分了不同的小类。这里请参考IS帮助中的说明。 2 COMMON篇之InstallScript Porject 2.1使用向导做一个简单的安装包 2.1.1了解你要安装的程序 首先你要清楚,你的程序所需要的运行环境要求。 这个安装包例子中,我们要打包这样一个系统:主程序是LearnQClient.exe,rtcdll.dll,ImageOle.dll,dxmrtp.dll,dsoframer.ocx,config.ini,许可协议.txt;它运行时需要读取当前目录下的config.ini,由于这个程序是用VC开发的,所以还需要运行的机器上有vc的运行库。具备了这个环境,LearnQClient.exe程序才能正常运行起来。 这就要求我们做好的安装程序安装时要将LearnQClient.exe,rtcdll.dll,ImageOle.dll, dxmrtp.dll,dsoframer.ocx,config.ini拷贝到指定的安装目录,也可将 ImageOle.dll,dsoframer.ocx拷贝到当前系统的系统目录(windows9x中系统目录是windows/system;windows 2000/xp的系统目录是system32)。同时要实现安装的时候将VC6的运行库安装到目标机器上;其中帮助文件是可选择安装的。下面我们来试着做这个安装包。 2.1.2建立一个InstallScript工程 启动IS,在主窗体中选择“Create a new Project”

VS2012 InstallShield Limited Edition使用教程

1.安装和部署 2.下载InstallShield 3.注册后方可进行下载(邮箱一定要填写正确的,以便可以正常接收到激活码)

4.登录注册时写的邮箱,找到激活码 5.安装,选择第一个并输入邮箱中的注册码即可

6.安装成功后即可创建打包程序 7.创建成功的项目展示

8.默认展示欢迎界面,也可以双击“Project Assistant”进入到欢迎界面 9.单击第一个选项卡“Application Information”,按照上面的填写。

10.单击“General Information”进入进行更改语言为中文简体 常见问题: 问:生成出错,提示"The English (United States) translation for string identifier IDS_SHORTCUT_DISPLAY_NAME1 includes characters that are not available on code page 1252." 答:InstallShield安装语言默认为English (United States),当安装路径或文件名包含中文时生成项目会出错并显示上述错误信息,将安装语言设置为简体中文即可解决。在"Application Information"步骤界面左侧找到"General Information"并打开,将"Setup Language"设置为"Chinese (Simplified):中文

(简体)"即可。 11. 第二选项卡“Installation Requirements”,选择部署的目标环境和必须组件。 12. 第三选项卡“Installation Architecture”,这里不用设置。 13. 第四选项卡“Application Files”,添加生成的类库和exe可执行程序。--补充说明,添加的文件是bin\release文件夹下的内容。注意在Release模式下编译才会输出到这里;如果添加bin\debug文件夹下的内容也可以,只是里面包

InstallShield Limited Edition for Visual Studio图文教程

InstallShield Limited Edition for Visual Studio图文教程(教你如何打包.NET程序) 从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“InstallShield Limited Edition for Visual Studio”,注意这个版本是免费的,只需要邮件注册下,就会有要注册码。虽然不知道微软这是何用意,但是既然他叫我们用,那就去用吧。(其实,早在VS2010中,微软就把InstallShield Limited Edition for Visual Studio放在里面了,只是那个时候自家产品还在)。 如何下载注册: https://www.doczj.com/doc/b38753929.html,/fwlink/?LinkID=239620&lang=1033&ver=ult 用你的邮箱注册,会免费发注册码的,不需要破解 具体步骤: 1、新建了一个基本的三层项目,用来测试打包

2、根据实际情况,填写程序基本信息 3、这一步非常重要,看上图: 1)设置为简体中文,否则安装路径有中文的话就会出问题 2)设置默认安装路径 3)修改默认字体 4)每次升级,重新打包,只需要点击这一行右侧的“…”按钮,就会重新生成Code,安装时就会自动覆盖老版本

4、选择我要的.NET Framework 4.0 5、这里什么也不做

6、添加要打包的文件、程序 7、右键——属性(Properties)

8、非常重要: 1)如果你的是.NET项目程序DLL、EXE,那就按照默认的设置,不要去改,否则出错 2)如果你的是OCX或者ActiveX等需要注册的DLL,那么选择 “Self-registration”

InstallShield 使用手册(SP补丁)

InstallShield 使用手册 1 总体介绍 (1) 2安装程序制作过程(MSI) (1) 2.1 New Project (1) 2.2 Installation Information (2) 2.2.1 General Information (2) 2.2.2 Update Service (6) 2.2.3 Trialware * (7) 2.3 Organization (7) 2.3.1 Setup Design (7) 2.3.2 Features (11) 2.3.3 Components (11) 2.4 Application Data * (11) 2.4.1 Files and Folders * (11) 2.4.2 Redistributables * (11) 2.4.3 Mobile Devices * (11) 2.5 System Configuration (12) 2.5.1 Shortcuts (12) 2.5.2 Registry * (12) 2.5.3 ODBC Resources * (12) 2.5.4 INI file Changes * (12) 2.5.5 Environment Variables * (12) 2.5.6 XML File Changes * (12) 2.6 Server Configuration * (12) 2.6.1 Internet Information Services * (12) 2.6.2 Component Services * (13) 2.6.3 SQL Scripts * (13) 2.7 Behavior and logic (13) 2.7.1 InstallScript (13) 2.7.2 Custom Actions (13) 2.7.3 Sequences (14) 2.7.4 Support Files * (15) 2.7.5 System Search * (15) 2.7.6 Property Manager * (15) 2.8 User Interface * (15) 2.8.1 Dialogs * (15) 2.9 Media * (15) 2.9.1 Path Variables * (15) 2.9.2 Upgrades * (15) 2.9.3 Releases * (15) 2.9.4 Patch Design * (15)

Installshield2020制作安装包详解

Installshield2020制作安装包详解 1. 打开Installshield 2018 Premier Edition,新建一个Installscript Project,它是一个全脚本类型程序,确实是用脚本来驱动安装界面。 选择类型为InstallerScript | InstallScript Projcet,输入工程名,指定工程所在的文件夹。 2.界面会切换到Project Assistant,从那个地点开始把工程的差不多组件和差不多文件建立好,只是一样在Installation Designer里进行设置。 3.在Project Assistant界面的底部,会有一个引导动作条,在建立该工程的差不多结构和文件时,能够在此界面进行操作。

4.点击界面上的Installation Designer,进入安装设计界面 1.Installation Information文件夹要紧是设置该安装包的差不多信息,用户只要设置General Information里的信息,其它两个不用设置。要紧是设置此安装包项目的名称,运行的操作系统和一些差不多信息。 https://www.doczj.com/doc/b38753929.html,anization文件夹要紧是进行安装设置,包括安装中要用到的文件,安装文件的执行顺序以及安装类型的设置(自定义安装和完全安装)。Setup Design要紧是用来添加安装过程中

所需的文件和快捷方式的设置,快捷方式设置包括开始菜单中的快捷方式和桌面快捷方式的设置。还能够把文件的安装和脚本中函数的执行关联起来。Features要紧是查看各装置的配置信息,Components要紧是查看各组件的配置信息,这两个差不多上方便用户查看一些设置的差不多信息。Setup Types用来设置用户在自定义安装和完全安装时要安装的组件。 3.Application Data 文件夹要紧是提供用户查看运算机中的应用程序和文件,方便用户来选择其中的文件来制作安装包。一样不需要用户操作。 4.System Configuration 文件夹要紧是查看系统的配置信息,包括安装包快捷方式的设置,当前运算机系统注册表的信息。一样也不需要用户操作。 5.Server Configuration文件夹要紧是一些服务的配置信息。一样也不需要用户操作。 6.Behavior and Logic 文件夹要紧是用来编写安装包程序的脚本,在InstallScript的Files文件夹下包括脚本文件,在Functions文件夹下显示脚本中所有的函数。在Support Files/Billboards 下要紧是支持该安装包的一些文件,例如用户协议文件之类。

InstallShield教程

使用 本文使用的InstallShiled的版本是InstallShiled 2008 Premier Edition,只介绍制作Base MSI Preject及InstallScript MSI Preject安装包。 1菜单 大多数菜单与其他软件一样,这里只介绍几个有特点的。 1.1Go 可以通过此菜单到任意一个设计界面中。 1.2Project 1.1.1[Perform Static Scan…]及[Perform Dynamic Scan…] 静态及动态搜索应用程序所需要的系统对象及Dll运行库,这两个功能有详细的向导,这里不再做介绍。 1.1.2[Source Control] 此功能为源代码管理,必须结合Microsoft的Microsoft Visual SourceSafe。 1.3Tools 1.3.1[InstallScript] Standard Dialog Sampler及Skinned Dialog Sampler查看固定的安装步骤界面,以便在脚本中调用。 Cabinet File Viewer查看安装包CAB文件的内容,经测试好像不能查看InstallShield2008制作的CAB的内容。 2安装设计界面 这里介绍的是Installation Designer页面的界面(介绍一些重要的属性)。 2.1Installation Information 2.1.1General Information ?Project Properties Setup Languages:设置安装包的语言种类,一般默认的是简体 中文。

?Add or Remove Programs Display Icon:在系统中的添加或删除程序的列表中显示的图标; Display Icon Index:图标文件的图标索引; Disable Change Button:隐藏添加或删除程序的列表中的更改按 钮; Disable Remove Button:隐藏添加或删除程序的列表中的删除 按钮; ?Product Properties Name:产品名称,显示在整个安装界面的产品名称; INSTALLDIR:安装的默认路径; ?String Tables 每种安装语言都有一个节点,安装中使用的字符串。 2.2Organization 2.2.1几个基本概念 ?Feature 特征,每个Feature可包含子Feature及若干个Component,每 个Feature都会出现在Feature选择界面中,一旦Feature被选 择安装其包含的Component就会被安装到系统中去; ?Component 组件,每个Component可设置需要安装的文件、写入的注册表 信息、创建的快捷方式等等; ?Setup Type 安装类型,一般默认有Minimal(压缩)、Typical(典型)、Custom(自 定义),每种安装类型包含若干个Feature。 2.2.2Setup Design 此界面可以设置Features、Components(组件)及Files(安装文件)等等。 [Setup Design]节点的右键菜单,[New Feature]菜单新建一个Feature,右键点击Feature节点,[New Feature]菜单新建一个子Feature; [New Component]新建一个Component;[Associate Components]菜单可关联Component。

相关主题
文本预览
相关文档 最新文档