码迷,mamicode.com
首页 > 其他好文 > 详细

InnoSetup 使用

时间:2018-07-30 23:35:52      阅读:703      评论:0      收藏:0      [点我收藏+]

标签:网址   主程序   version   desc   参考   程序安装   文档   sele   ase   

目录

在进行 WPF 程序打包发布的时候如果对程序打包没有特别高的要求,InnoSetup 足以胜任普通的程序打包发布需求,它支持安装包加密,安装包升级安装,注册表操作等常规功能,以下脚本示例中有对常见操作进行相关说明。


InnoSetup 简介

Inno Setup用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。

参考脚本

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

; 程序名称
#define MyAppName "hippieZhou"
; 程序版本号
#define MyAppVersion "2.2.0.5"
; 发布商名称
#define MyAppPublisher "hippieZhou, Inc."
; 发布商网址
#define MyAppURL "http://www.cnblogs.com/hippieZhou"
; 执行主程序名称
#define MyAppExeName "hippieZhou.exe"
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{5597878A-538D-4164-B06A-2DC56C9ED8EE}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\TerraVision
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
; 程序打包输出目录
OutputDir=BuildOutputBaseFilename=setup
SetupIconFile=Application.ico
Compression=lzma
SolidCompression=yes
VersionInfoVersion={#MyAppVersion}
ArchitecturesAllowed=x64
; 以64位架构模式进行安装
ArchitecturesInstallIn64BitMode=x64
; 以管理员模式运行
PrivilegesRequired=poweruser
; 安装程序安装密码
Password=123456
; 是否加密
Encryption=yes
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
; 指定主程序
Source: "Src\TerraVision.Shell.exe"; DestDir: "{app}"; Flags: ignoreversion
; 拷贝程序文件到指定目录
Source: "Src\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
; 检测当前程序是否在运行
[Code]
function IsAppRunning(const FileName : string): Boolean;  
var  
    FSWbemLocator: Variant;  
    FWMIService   : Variant;  
    FWbemObjectSet: Variant;  
begin  
    Result := false;  
    FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');  
    FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');  
    FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));  
    Result := (FWbemObjectSet.Count > 0);  
    FWbemObjectSet := Unassigned;  
    FWMIService := Unassigned;  
    FSWbemLocator := Unassigned;  
end;   
function InitializeSetup(): Boolean;
begin
  if IsAppRunning('hippiezhou.exe') then
  begin
    if MsgBox('程序正在运行,请先关闭后再进行安装!',mbInformation,MB_OK) = idYes then
    begin 
      Result := False;
    end
  end
  else
  begin
    Result := True;
  end
end;
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

参考

InnoSetup 使用

标签:网址   主程序   version   desc   参考   程序安装   文档   sele   ase   

原文地址:https://www.cnblogs.com/hippieZhou/p/9393338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!