NSIS打包程式時解除安裝不淨問題

2021-08-11 12:01:27 字數 1455 閱讀 8013

在用nisedit打安裝包後遇到三個問題

1、在重新包裝時,程式路徑會出現問題,會指向子資料夾中,程式就公出錯。而且多次重複包裝後檔案路徑會變長

原因:研究**,發現是安裝時寫入的登錄檔中的程式路徑不對

解決:改為正確的路徑

section -post

writeuninstaller "$instdir\uninst.exe"

writeregstr hklm "$" "" "$instdir\frogtunnel.exe"   //此為改正後的**,原先是指向了$instdir的子目錄中,所以當重複安裝時路徑會出錯

writeregstr $ "$" "displayname" "$(^name)"

writeregstr $ "$" "uninstallstring" "$instdir\uninst.exe"

writeregstr $ "$" "displayicon" "$instdir\frogtunnel.exe" //此為改正後的**,原先是指向了$instdir的子目錄中,所以當重複安裝時路徑會出錯

writeregstr $ "$" "displayversion" "$"

writeregstr $ "$" "urlinfoabout" "$"

writeregstr $ "$" "publisher" "$"

sectionend

2、在程式解除安裝後,有部分檔案沒有刪除掉。

原因:有的資料夾沒有寫入到移除過程中

rmdir "$instdir\adobe air\versions\1.0"

rmdir "$instdir\adobe air"

如上versions資料夾沒有移除

解決:在兩句中間加入移除versions語句

rmdir "$instdir\adobe air\versions\1.0"

rmdir "$instdir\adobe air\versions"

rmdir "$instdir\adobe air"

3、同樣是解除安裝後,開始 的快捷方式沒有刪除

原因:可能和使用者許可權有關係,具體沒有深究

解決:(1)加入admin許可權 requestexecutionlevel admin 如

showinstdetails show

showuninstdetails show

requestexecutionlevel admin #note: you still need to check user rights with userinfo!

section "mainsection" sec01

(2)在建立開始選單和解除安裝時加入setshellvarcontext all

如//建立開始選單

setshellvarcontext all

//解除安裝

section uninstall

setshellvarcontext all

NSIS對解除安裝程式的簽名

方案一 思路 把安裝指令碼裡的解除安裝部分抽出來單獨做乙個解除安裝指令碼,解除安裝指令碼編譯成exe後進行簽名,再把解除安裝程式打包進安裝包,最後對安裝包進行簽名 步驟 1 從安裝指令碼中找到以下 並刪除 安裝解除安裝過程頁面 insertmacro mui unpage instfiles和 wr...

NSIS打包electron程式為exe安裝包

我們把out資料夾複製到桌面 不複製也可以,我是為了方便演示 開啟nisi 1 選擇視覺化指令碼編輯器 2 選擇新建指令碼 嚮導 5 設定安裝程式圖示 圖示必須是ico格式 名稱,語言 simpchinese 介面,然後下一步 7 授權檔案有就填,沒有就填空白 然後下一步 8 新增應用程式檔案,預設...

NSIS安裝程式打包製作工具入門

最近看webm專案,發現其安裝資料夾有乙個nsi檔案,於是上網查了查,發現這個是nsis nullsoft scriptable installation system 軟體用的指令碼。具體中文名可成為nullsoft 指令碼安裝系統 這是乙個免費的win32安裝解除安裝系統。公司的專案由我來做打包...