NSIS軟體公升級包的製作

2021-08-10 19:12:59 字數 2319 閱讀 2368



!define product_name "aaa"

!define product_version "3.0.1.1965"

!define product_publisher "bbb"

!define product_uninst_key "software\microsoft\windows\currentversion\uninstall\$"

!define product_uninst_root_key "hklm"

setcompressor lzma

!include "mui.nsh"

!include "strfunc.nsh"

!include "library.nsh"

!include "wordfunc.nsh"

!define mui_abortwaring

!define mui_icon "bin\system\icon\aaa.ico"

!define mui_welcomepage_title "歡迎使用「aaa」安裝嚮導"

!define mui_welcomepage_text "\r\n這個安裝嚮導將指引你完成「aaa」的公升級安裝過程。\r\n\r\n開始安裝前,建議先關閉其他所有應用程式。這將允許「公升級程式」更新指定的系統問件,而不需要重新啟動計算機。\r\n\r\n$_click"

!insertmacro mui_page_welcome

!insertmacro mui_page_license "license.rtf"

!insertmacro mui_page_instfiles

!insertmacro mui_page_finish

!insertmacro mui_language "simpchinese"

name "aaa"

outfile "upgrade_x86.exe"

installdir "$programfiles\aaa"

showinstdetails show

showuninstdetails show

brandingtext "hahaha..."

brandingtext "nsis"

section -post

setregview 32

writeregstr $ "$" "displayversion" "$"

setregview lastused

sectionend

section -upgrade

setdetailsprint textonly

detailprint "正在更新程式元件..."

;setdetailsprint none

setautoclose true

setoutpath "$instdir"

setoverwrite on

file /r "update_x86\*.*"

sectionend

function .oninit

;禁止多個安裝程式同時執行

system::call 'kernel32::createmutexa(i 0, i 0, t "vaupdate") i .r1 ?e'

pop $r0

strcmp $r0 0 +3

messagebox mb_ok|mb_iconexclamation "公升級程式已經在執行。"

abort

;判斷是否已安裝過aaa

clearerrors

strcpy $r1 ""

readregstr $r1 $ $ "uninstallstring"

strlen $0 $r1

$ $0 < 1

;沒有安裝了軟體

messagebox mb_ok|mb_iconexclamation "您未安裝本軟體,不能使用此公升級程式!"

;退出安裝程式

abort

$!insertmacro versioncompare

;讀取已安裝軟體版本,放在$r2中

readregstr $r2  $ $ "displayversion"

;比較已安裝軟體和待安裝軟體的版本,並把結果放在$1中,結果有三個,1,2,和0

$  "$r2"  "$"  $1

strcmp $1  "1"  0  +3

messagebox mb_ok  "待安裝版本比已安裝版本低"

abort

strcmp $1  "0"  0  +3

messagebox mb_ok  "待安裝版本和已安裝版本一樣"

abort

$functionend

RK公升級包製作記錄

執行任務效果 會在乙個基礎包上面,生成乙個全量包和乙個差分包,步驟如下 1 make j24 編譯原始 包 2 mkimage.sh ota 在rockdev目錄下生成相應img 3 make otapackage 生成原始完整包 4 把原始完整包改名,備用後面生成差異包 mv out target...

Ubuntu常用公升級包

在ubuntu上用公升級的方法可以迅速地安裝gcc sudo apt get install g 輸入管理員密碼後,就可以安裝g 了 安裝完成後,執行 gcc v 可以看到安裝的gcc的版本號。同樣地安裝mysql sudo apt get install mysql server sudo apt...

pip 批量公升級包

pip 可以使用如下指令檢視並公升級舊版本包 列出所有的舊版本包 pip list outdated 公升級指定的包 pip install upgrade somepackge然而pip install upgrade somepackge只能公升級乙個包,無法批量操作。實際上,可以借助pip r...