Inno Setup软件安装见:
一、制作程序安装包
先准备要被打包的可执行文件及其环境文件;另外还需要三个txt文件
三个文件中的内容如下,在使用程序安装包时会看到文件中的内容,同时文件的格式是“GB18030”,防止简体中文安装时乱码
运行Inno Setup,选择如下红框中的选项,新建打包项目
默认,点击“Next”
设置应用应用程序名称、版本号、发布者和网站
更改相应的内容
选择被打包的可执行文件,点击“Add folder”,选择可执行文件所在目录(为了加载可执行文件的相关环境文件)
选择提前准备的三个文件
选择英文和中文安装语言
选择程序安装包存储位置;更改程序安装包名称;选择程序安装包图标(.ico文件);需要安装时需要密码限制,可输入密码
默认,点击“Next”(勾选项会在脚本中使用#define宏定义一些常量)
默认,点击“Finish”
是否立即编译新的脚本,点击“是”
是否保存脚本文件,点击“是”
更改脚本文件存放位置和脚本文件名称
等待编译
编译完成
在指定位置下,生成程序安装包和脚本文件
举例
#define MyAppName "load_pub" ; exe名称
#define MyAppVersion "1.5"
#define MyAppPublisher "Chen, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "load_pub.exe" ; exe运行路径
; #define MyAppExeName "load_pub\load_pub.exe"
#define MyInstallDir "D:\pub" ; 程序安装目录
[Setup]
AppId={{AppId}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={#MyInstallDir}
DisableProgramGroupPage=yes
OutputDir={#MyInstallDir}
OutputBaseFilename=loadPubSetup ; 安装包名称
; Compression=lzma
Compression=zip
SolidCompression=yes
DisableDirPage=yes ; 禁止用户修改安装目录
AlwaysShowDirOnReadyPage=yes ; 显示安装路径
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\Default.isl"
; Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl" ; 要先在官网先下载中文配置文件
[Files] ; 要打包的资源
Source: "D:\project\loadMp\dist\load_pub.exe"; DestDir: "{app}"; Flags: ignoreversion
; Source: "D:\project\loadMp\dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent;
; Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent; WorkingDir: "{app}"
; 添加注册表自启项
[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "load_pub"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue