InnoSetup使用教程:InnoSetup打包安装

脚本详细

1. 定义变量

  1. #define MyAppName "TranslationTool"
  2. #define MyAppChineseName "翻译工具"
  3. #define MyAppVersion "1.0"
  4. #define MyAppPublisher "dotnetschool"
  5. #define MyAppURL "https://dotnet-campus.github.io/"
  6. #define MyAppExeName "TranslationTool.exe"

2. 初始化安装包设置

  1. [Setup]
  2. ; NOTE: The value of AppId uniquely identifies this application.
  3. ; Do not use the same AppId value in installers for other applications.
  4. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
  5. AppId={{AEDA7675-70DC-479E-B796-344517C2C954}
  6. AppName={#MyAppName}
  7. AppVersion={#MyAppVersion}
  8. ;AppVerName={#MyAppName} {#MyAppVersion}
  9. AppPublisher={#MyAppPublisher}
  10. AppPublisherURL={#MyAppURL}
  11. AppSupportURL={#MyAppURL}
  12. AppUpdatesURL={#MyAppURL}
  13. DefaultDirName={pf}\{#MyAppName}
  14. DefaultGroupName={#MyAppChineseName}
  15. OutputDir=C:\Users\\Desktop
  16. OutputBaseFilename={#MyAppChineseName}
  17. SetupIconFile=F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\Images\bitbug_favicon.ico
  18. Compression=lzma
  19. SolidCompression=yes

其中,

  • AppId 程序标识
  • AppName 程序名称
  • AppVersion 版本号。生成默认版本号AppName+AppVersion
  • AppVerName 程序版本号。如果设置了AppVersion,则AppVerName会覆盖AppVersion值。
  • AppPublisher 发布者
  • AppPublisherURL、AppSupportURL、AppUpdatesURL 相关链接
  • DefaultDirName 默认安装目录
  • DefaultGroupName 默认开始菜单目录名
  • OutputDir 打包exe的生成目录,比如可以设置在桌面
  • OutputBaseFilename 打包exe的文件名称
  • SetupIconFile 设置打包exe的图标
  • Compression、SolidCompression 压缩相关

3. 启动文件和程序所有文件

  1. [Files]
  2. Source: "F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\bin\Debug\TranslationTool.exe"; DestDir: "{app}"; Flags: ignoreversion
  3. Source: "F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\bin\Debug\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
  4. ; NOTE: Don't use "Flags: ignoreversion" on any shared system files

忽略文件 Excludes: "*.bak,*.pdb,*.dll.config,*.ax,*\Log\*";

4. 图标

  1. [Icons]
  2. Name: "{group}\{#MyAppChineseName}"; Filename: "{app}\{#MyAppExeName}"
  3. Name: "{group}\{cm:UninstallProgram,{#MyAppChineseName}}"; Filename: "{uninstallexe}"
  4. Name: "{commondesktop}\{#MyAppChineseName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

从上而下,分别是开始菜单中的启动快捷方式、开始菜单中的卸载快捷方式、桌面快捷方式

5. 直接启动

  1. [Run]
  2. Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppChineseName}}";Flags: nowait postinstall skipifsilent

在完成安装后,可以选择直接启动。

6. 添加Pascal代码

以上都只是innosetup提供的配置,如果需要定制注册表、卸载其它软件、定制界面、用户环境等,可以通过innosetup提供的一些事件来处理。如:

  1. [code]
  2. function InitializeSetup (): Boolean;
  3. begin
  4. MsgBox('程序安装!', mbInformation, MB_OK);
  5. Result := true;
  6. end;

此处只介绍一些常用的字段参数,详细的可参考其它博客:https://blog.csdn.net/yiyihuazi/article/details/60323746https://www.cnblogs.com/langtianya/p/4285570.html

案例脚本:

  1. ; Script generated by the Inno Setup Script Wizard.
  2. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
  3.  
  4. #define MyAppName "TranslationTool"
  5. #define MyAppChineseName "翻译工具"
  6. #define MyAppVersion "1.0"
  7. #define MyAppPublisher "dotnetschool"
  8. #define MyAppURL "https://dotnet-campus.github.io/"
  9. #define MyAppExeName "TranslationTool.exe"
  10.  
  11. [Setup]
  12. ; NOTE: The value of AppId uniquely identifies this application.
  13. ; Do not use the same AppId value in installers for other applications.
  14. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
  15. AppId={{AEDA7675-70DC-479E-B796-344517C2C954}
  16. AppName={#MyAppName}
  17. AppVersion={#MyAppVersion}
  18. ;AppVerName={#MyAppName} {#MyAppVersion}
  19. AppPublisher={#MyAppPublisher}
  20. AppPublisherURL={#MyAppURL}
  21. AppSupportURL={#MyAppURL}
  22. AppUpdatesURL={#MyAppURL}
  23. DefaultDirName={pf}\{#MyAppName}
  24. DefaultGroupName={#MyAppChineseName}
  25. OutputDir=C:\Users\\Desktop
  26. OutputBaseFilename={#MyAppChineseName}
  27. SetupIconFile=F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\Images\bitbug_favicon.ico
  28. Compression=lzma
  29. SolidCompression=yes
  30.  
  31. [Languages]
  32. Name: "english"; MessagesFile: "compiler:Default.isl"
  33.  
  34. [Tasks]
  35. Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
  36.  
  37. [Files]
  38. Source: "F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\bin\Debug\TranslationTool.exe"; DestDir: "{app}"; Flags: ignoreversion
  39. Source: "F:\GitHub\TranslationApiDemo\TranslationTool\TranslationTool\bin\Debug\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
  40. ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
  41.  
  42. [Icons]
  43. Name: "{group}\{#MyAppChineseName}"; Filename: "{app}\{#MyAppExeName}"
  44. Name: "{group}\{cm:UninstallProgram,{#MyAppChineseName}}"; Filename: "{uninstallexe}"
  45. Name: "{commondesktop}\{#MyAppChineseName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
  46.  
  47. [Run]
  48. Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppChineseName}}";Flags: nowait postinstall skipifsilent

设置安装包以管理员权限运行

如果安装包需要以管理员运行,在VS中设置程序以管理员权限启动之后,

在InnoSetup安装目录下,找到配置SetupLdr.e32文件,设置Manifest中的权限启动参数(与VisualStudio类似),操作如下:

下载Resource Hacker编译器,然后打开.e32文件,将其中权限相关参数,修改为管理员权限。

详细操作可参考:用inno setup制作管理员权限启动的安装包

案例截图

生成的安装包exe以及安装后桌面快捷方式

开始菜单中的快捷方式

InnoSetup 脚本打包及管理员权限设置的更多相关文章

  1. EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行

    很多时候, 我们需要以管理员权限来运行批处理脚本, 比如操作 windows 服务. EasyNVR 中提供安装服务的批处理脚本, 运行这个bat文件, 自动将 EasyNVR 以 windows 服 ...

  2. sharepoint 脚本 强迫以管理员权限运行

    #region 关键代码:强迫以管理员权限运行 $currentWi = [Security.Principal.WindowsIdentity]::GetCurrent() $currentWp = ...

  3. 使用applescript脚本方式以管理员权限运行

    - (BOOL) runProcessAsAdministrator:(NSString*)scriptPath                      withArguments:(NSArray ...

  4. 修改hosts文件(判断是否为管理员/以管理员权限运行脚本)

    将以下命令保存为 HostsModify.ps1,然后执行即可 #该脚本用来添加hosts解析记录.脚本在执行的时候会判断当前用户是否为管理员,如果不是则弹出提示框口,要求输入相应密码 If (-NO ...

  5. wiki----为用户设置管理员权限

    wiki页面的管理员权限设置方法: wiki的页面好像没办法修改,只能在数据库中进行操作: 1.进入到wiki的安装目录下: #cd /var/www/html/wiki 2.查看wiki的配置文件, ...

  6. 你需要管理员权限才能删除文件夹及服务器C盘不及批处理

    Windows 7系统,管理员权限设置方法 一.选择文件夹或文件所有者 我们用鼠标右键点击要操作的文件或文件夹 - 属性: 在出现的文件夹属性窗口,我们用鼠标左键点击:安全: 我们用鼠标左键点击:高级 ...

  7. Inno Setup打包的程序提升为管理员权限

    Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框. 这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图 ...

  8. Inno Setup打包添加和去除管理员权限

    原文:Inno Setup打包添加和去除管理员权限 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr.e32, ...

  9. 【程序打包工具 Inno Setup】CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)

    原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html http://blog.csdn.net/x356982611/article/d ...

随机推荐

  1. python 之 初识模块

    什么是模块 什么是模块 一个.py文件 就是一个模块 我们使用import加载的模块分为4个通用类别 1.py文件 2.包好一组模块的包(带__init__.py文件的文件夹) 3.内置模块 4.已被 ...

  2. 带logo图片或不带logo图片的二维码生成与解析,亲测成功

    最近公司需要实现二维码功能,本人经过一顿百度,终于实现了,因有3个功能:不带logo图片.带logo图片.解析二维码,篇幅较长,请耐心读之,直接复制粘贴即可. 前提:myeclipse10:jar包: ...

  3. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

  4. JS教程:从0开始

    一. JS简介 1. JavaScript概述 JavaScript 是世界上最流行的编程语言.这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. ...

  5. javaScript设计模式之----工厂模式

    什么是工厂模式?我们通过一个例子了解一下: 比如我们想要弹出几个字符串 function funA(){ alert('a'); } function funB(){ alert('b'); } fu ...

  6. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...

  7. 详解mybatis映射配置文件

    一  mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...

  8. 基础测试jmeter5.0+badboy(从小白到入门)

    1]测试工具jmeter环境安装 1.1]安装jdk环境 1:必须安装jdk8.0(我尝试安装最新版本不行,好像当时没有配置好.之后安装8.0遍可以正常运行)下载地址:单击此段 配置jdk环境:鼠标右 ...

  9. Django学习之十二:Cache 缓存组件

    目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...

  10. Dynamics 365 CE中使用FetchXML进行聚合运算

    微软动态CRM专家罗勇 ,回复328或者20190429可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...