不論是經由 python 的 pyinstaller 包裝成exe檔 ,或是 Java 的 jar2exe 建立 exe 檔,最終還需 copy 到指定的目錄(C:\Program File),然後在開始選單或桌面建立執行的 icon,更何況有時還要複製相關的 dll 函數庫。這些複雜的設定,不是一般使用者能完成的。
建立安裝檔常用的工具有 InstallShied(強大但要錢),Advanced Installer(超強且要錢),NSIS(簡單不用錢)
NSIS簡介
NSIS (Nullsoft Scriptable Install System) 是一個很老牌的安裝程式系統,功能齊全且免費
NSIS主程式下載及安裝
請到官網下載最新版本主程式 https://nsis.sourceforge.io/Main_Page ,點選 Download 再進行安裝即可
todo
安裝Plugin
除了主程式外,還需下載外掛函數庫,常用的外掛有如下
AccessControl.dll : 設定目錄或檔案權限
解開後,將 AccessControl\Plugins\i386-unicode\AccessControl.dll copy 到 C:\Program Files (x86)\NSIS\Plugins\x86-unicode
KillProcDLL.dll : 移除時,強制關閉Process
解開後,將 E:\nisi\KillProcDLL-bin\KillProcDLL.dll copy 到 C:\Program Files (x86)\NSIS\Plugins\x86-unicode
literFirewall.dll : 設定防火牆
解開後,將 2011-07-liteFirewall\liteFirewall\bin 底下的二個檔 liteFirewall.dll 及 liteFirewallW.dll copy 到 C:\Program Files (x86)\NSIS\Plugins\x86-unicode
UAC.dll : 開啟UAC權限選單
解開後,將 UAC\Plugins\x86-unicode\UAC.dll copy 到 C:\Program Files (x86)\NSIS\Plugins\x86-unicode
UAC底下的 UAC.nsh copy 到 C:\Program Files (x86)\NSIS\Include。
範例 Script
假設我們的專案在 d:\python\game,經由 pyinstall 包裝完成 d:\python\game\dist\game.exe。
請由如下網址下載 包裝範例, 解開後,將所有檔案複製到 d:\python\game之下,然後修改 setup.nsi 裏的YouTube 關鍵字,換成包裝後的 game.exe。
最後,在 setup.nsi 按右鍵/Compile NSIS Script,即可包裝出 game_01.exe安裝檔了。