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

相关文章

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

高效+灵活,万博智云全球发布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包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们