ApolloStudio高手之路(17):用Inno Setup打包发布你的专属“ApolloStudio”

2024-04-14 06:58

本文主要是介绍ApolloStudio高手之路(17):用Inno Setup打包发布你的专属“ApolloStudio”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

继上一篇ApolloStudio高手之路(16):定制化你的专属ApolloStudio(OEM定制)发布之后,很多小伙伴私信问我如何将完全自定义的ApolloStudio赶紧打包发布,这里我们就一起来分析下如何快速自定义我们的ApolloStudio。

软件准备

常用的打包软件有很多,例如开源免费的Inno Setup(本文中所应用的到的)、强大到无与伦比的商用软件InstallShield等等,这里我们以笔者常用的Inno Setup为例进行讲解。

Inno Setup有其官方网站:https://jrsoftware.org/isinfo.php

介于官网所发布的版本对中文语言包需手动添加以及外网访问不便的情况,推荐进入ApolloStudio的网盘下载地址(通过文末的超链接获取)(网盘路径:.\2.ApolloStudio周边工具包\打包工具\Inno Setup v6.0.4 汉化版.exe),获取软件之后一路默认安装即可安装成功。

软件的配置

使用Inno Setup对软件进行打包可以依照其自带的向导进行自由配置,配置完成之后将会生成一个Inno Setup脚本文件,有关向导的使用可以参考这个链接:Inno Setup的安装以及向导的使用流程,在本文中我们将跳过向导自动生成的环节,直接以笔者自定义的脚本文件进行讲解。

ApolloStudio本身对安装路径没有太高要求,其默认路径(C:\Program Files (x86)\ApolloStudio)是使用Inno Setup打包后默认的安装路径,在打包之前,可以将默认路径下的ApolloStudio整个文件夹完整复制到你自定义的路径备用(例如你可以将其放置在了D:\ApolloStudio文件夹内)。

同样在网盘空间下载得到名为ApolloStudio打包脚本.iss的脚本文件,下面我们对脚本内容进行解析讲解:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
;下面的均为宏定义,分别定义了APP的名字,版本信息,发布者,网站链接以及APP的执行文件名
#define MyAppName "ApolloStudio"
#define MyAppVersion "V20200420"
#define MyAppPublisher "GentlerMan"
#define MyAppURL "https://blog.csdn.net/tmxyz1950"
#define MyAppExeName "ApolloStudio.exe"[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
;以下信息为系统默认,不必修改,默认即可
AppId={{BD41EB40-36AF-4070-AFD3-BF024D6CA7A8}
AppName={#MyAppName} 
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
UsedUserAreasWarning=no
;用户许可协议,可以在对应目录进行自定义修改
LicenseFile=..\ApolloStudio\bin\Release_Finall\Document\ApolloStudio软件许可及服务协议.txt
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
;打包后的文件所存放的路径
OutputDir=..\
;打包后的文件名
OutputBaseFilename=ApolloStudio_Setup_V20200420
;打包后的文件所使用的图标
SetupIconFile=..\LogoResource\黑底透明_64.ico
;系统打包方式,请默认
Compression=lzma
SolidCompression=yes
WizardStyle=modern[Languages]
;以下是语言信息,请默认
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"[Tasks]
;创建快捷方式相关操作,默认即可
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode;以下是打包的文件夹目录
[Files];这里包含了.Net Framework4.7.2的运行库,也可以精简掉
Source: "..\Runtime\NDP472.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Check : CheckNetIsNeedInstall;这里是设置主程序名,必须指定
Source: "..\ApolloStudio\bin\Release_Finall\ApolloStudio.exe"; DestDir: "{app}"; Flags: ignoreversion;这里是设置主程序名所在的目录,必须指定(这里的路径即你之前复制ApolloStudio的文件夹路径)
Source: "..\ApolloStudio\bin\Release_Finall\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files[Icons]
;关于图标的一些定义,这里默认就好,系统会根据宏定义自动加载
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon[Run];以下是根据检查CheckNetIsNeedInstall函数来判断是否需要对.Net Framework4.7.2进行静默安装
Filename: {tmp}\NDP472.exe; Parameters: "/quiet /norestart"; WorkingDir: {tmp}; Flags: skipifdoesntexist; StatusMsg: "正在安装.Net Framework 4.7.2 请稍候..." ; Check : CheckNetIsNeedInstall
;安装完成后是否立即执行主程序 
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent;以下是设定了2个功能函数,一个是通过注册表检测是否已安装过高于4.7的.Net Framework,另外一个函数表示在执行卸载的过程中提醒用户是否删除系统缓存空间内的文件
[Code]
function CheckNetIsNeedInstall(): Boolean;
varmyversion: String;
beginmyversion := '';if RegValueExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'Version') thenbeginRegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'Version', myversion);endelsebeginResult := True;end;if StrToFloat(copy(myversion,0,3)) < 4.7 thenbeginResult := True;endelsebeginResult := False;end;
end;function InitializeUninstall (): Boolean; 
beginif MsgBox('删除配置文件:' #13#13 '请问是否删除软件配置文件?', mbConfirmation, MB_YESNO) = idYes thenbeginDelTree(ExpandConstant('{localappdata}') + '\ApolloWorks', True, True, True);    end;Result := True
end;

以上只是笔者常用的一些配置,大家同样可以度娘一下Inno Setup更多高阶的操作进行更深层次的自定义,欢迎大家联系我进行沟通分享!

软件的执行

在经过以上配置文件的修改,在Inno Setup中直接进行编译即可:

最终你将在你设定的OutputDir路径下获取得到你定制化的ApolloStudio安装程序了!(安装后同时也会自动生成卸载程序,可以在系统的程序卸载列表中看到) 

***********************************************************************************************************************************************

ApolloStudio最新版下载地址(网盘有交流群号):

(点击跳转至首页文章,见文章最底部下载链接)

这篇关于ApolloStudio高手之路(17):用Inno Setup打包发布你的专属“ApolloStudio”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902369

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

秒变高手:玩转CentOS 7软件更换的方法大全

在 CentOS 7 中更换软件源可以通过以下步骤完成。更换源可以加快软件包的下载速度,特别是当默认源速度较慢时。以下是详细步骤: 前言 为了帮助您解决在使用CentOS 7安装不了软件速度慢的问题,我们推出了这份由浪浪云赞助的教程——“CentOS7如何更换软件源加快下载速度”。 浪浪云,以他们卓越的弹性计算、云存储和网络服务受到广泛好评,他们的支持和帮助使得我们可以将最前沿的技术知识分

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM