zoukankan      html  css  js  c++  java
  • InnoSetup 使用

    在进行 WPF 程序打包发布的时候如果对程序打包没有特别高的要求,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=Build
    OutputBaseFilename=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: "SrcTerraVision.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('', 'rootCIMV2', '', '');  
        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}MicrosoftInternet ExplorerQuick Launch{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: quicklaunchicon
    

    相关参考

  • 相关阅读:
    SSAS aggregation 的作用及其使用
    liblinear使用总结
    python绝对路径相对路径函数
    libsvm使用总结
    一次scrapy成功停止的信息
    简单总结scrapy使用方法
    python编码格式
    一次scrapy失败的提示信息:由于连接方在一段时间后没有正确答复或连接的主机没有反 应,连接尝试失败
    17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步
    16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/9393338.html
Copyright © 2011-2022 走看看