這是歷史版本頁面 — 看 NSIS 最新版本
NSIS 是什麼?Windows 安裝程式製作工具解析
寫完一支程式,想丟給別人用,卻發現對方拿到檔案不知道怎麼裝。你試過把資料夾壓縮寄過去,但對方解壓縮後執行檔東缺西缺,根本跑不起來。你需要的是一個能讓使用者雙擊、下一步、下一步就裝好的安裝程式,而不是叫對方自己處理一堆檔案。
手動建立安裝程式不是不行,但用一般壓縮工具做出來的東西,沒有開始功能表捷徑、沒有解除安裝選項,更別提檢查系統環境或寫入登錄檔。這類工具切入點是:用一套腳本描述「安裝時要做哪些事」,然後產生一個獨立的執行檔,讓使用者照著精靈步驟走完,安裝、設定、解除安裝都幫你處理好。
01NSIS 這套軟體是做什麼用的?
它是一套用來建立 Windows 安裝程式的工具。你寫好安裝腳本,它會編譯成一個獨立的 .exe 執行檔,使用者執行後就能照著精靈步驟安裝你的軟體。官方說明指出它特別適合網路發行,因為產生的安裝檔很小,預設情況下額外負擔只有約 34 KB,對頻寬有限的使用者來說比較友善。
02它能壓縮安裝檔嗎?支援哪些壓縮格式?
可以。它內建支援 ZLib、BZip2 和 LZMA 三種壓縮方式,檔案可以個別壓縮或全部一起壓縮。LZMA 壓縮率較高,但壓縮時間也較長,你可以依安裝檔大小和使用者下載時間的需求來選擇。這部分在官方功能列表中有明確列出。
03安裝程式能讓使用者自己選要裝哪些元件嗎?
可以。它提供元件選擇樹狀介面,使用者可以勾選要安裝哪些部分。也支援多種安裝組態,常見的有 Minimal、Typical、Full 三種預設組合,開發者也可以自訂其他組態。這對功能較多、想讓使用者只裝需要的部分的軟體很有用。
04安裝程式可以顯示授權協議嗎?
可以。它支援在安裝過程中顯示授權協議,文字格式支援純文字和 RTF 兩種。你可以在腳本中指定協議檔的路徑,安裝程式就會在精靈流程中插入一個顯示協議的頁面,使用者必須同意才能繼續安裝。
05它能產生解除安裝程式嗎?
可以。安裝程式可以同時產生一個解除安裝程式,使用者之後可以透過它移除軟體。解除安裝程式會記錄安裝時寫入的檔案和登錄檔項目,移除時一併清理。這對維持使用者系統整潔很重要,也是它內建的功能之一。
06這套軟體適合什麼樣的人用?
適合需要對安裝流程有完整控制權的開發者。因為它是腳本式的,你可以寫邏輯處理複雜的安裝任務,例如偵測目的地目錄、與 Windows 或其他軟體元件溝通、安裝或更新共用元件。如果你只是要一個簡單的「下一步下一步」安裝包,它也能做到,但學習腳本語法需要一些時間。
07我不會寫程式,能用這套軟體嗎?
可以,但門檻比圖形化工具高。它本質上是腳本驅動,你需要理解安裝腳本的語法才能自訂安裝流程。官方提供了多個現成的腳本和外掛可以參考,也有超過 40 種語言的翻譯檔可以直接使用。如果你完全不想碰腳本,可以考慮其他圖形介面的安裝程式製作工具。
08它支援多國語言嗎?
支援。官方說明指出它完全多語系,一個安裝程式可以內含多種語言,包括由右至左書寫的語言。目前已有超過 40 種翻譯可用,你也可以自己建立新的語言檔。使用者在安裝時可以選擇自己慣用的語言,這對跨國發行軟體很有幫助。
09這套軟體還在持續更新嗎?
根據現有資料,它的版本紀錄最後一次更新停在 2020 年 8 月,近 24 個月內沒有新版本。如果你在意安裝程式製作工具是否持續維護,這點需要列入考量。功能上它仍然可用,但如果你需要較新的技術支援或修補,可能要評估其他更新較頻繁的替代方案。
10它和 Inno Setup 比起來,哪個比較多人用?
以現有評分人數來看,Inno Setup 和 NSIS 都是 42 人評分,數量相同。Advanced Installer 有 162 人評分,IObit Uninstaller 有 403 人評分。評分人數多寡不代表品質好壞,但可以反映社群活躍度和能找到的資源多寡。如果你重視社群支援,可以參考這些數據。
11我只需要做一個簡單的安裝包,不想學腳本,適合用這套嗎?
不適合。它的核心是腳本式設計,即使簡單的安裝任務也要寫腳本。如果你只需要把檔案打包、顯示授權協議、產生解除安裝程式,其他圖形化工具可能更直覺。它的優勢在於複雜安裝邏輯的彈性,但這也意味著學習曲線較陡。
12我的軟體需要支援 Windows 11,這套可以嗎?
官方支援系統列表只列到 Windows 10,沒有提到 Windows 11。如果你需要安裝程式在 Windows 11 上正常運作,現有資料無法確認相容性,建議自行在 Windows 11 環境測試,或考慮其他有明確支援 Windows 11 的安裝程式製作工具。
下載與官方連結
nsis-2.36-setup.exe · 1.49 MB
版本紀錄
- 2020-08-01 NSIS 3.06 1.47 MB
- 2020-08-01 NSIS 3.06.1 1.47 MB
- 2019-12-16 NSIS 3.05 1.46 MB
再看 5 筆
- 2018-12-16 NSIS 3.04 1.45 MB
- 2018-01-31 NSIS 3.03 1.64 MB
- 2017-08-01 NSIS 3.02.1
- 2017-07-24 NSIS 3.02 1.63 MB
- 2016-12-12 NSIS 3.01 1.62 MB
這一版改了什麼
What's new in this version:
Release Notes
- nsDialogs is picking up its pace and offers lots of new macros in this release. Keep the patches and requests coming!
Major Changes
- nsExec: Support for x64 disabled redirection (RFE #1778973, bug #1889317)
Modern UI
- Added missing MUI_UNFUNCTION_DESCRIPTION_BEGIN and MUI_UNFUNCTION_DESCRIPTION_END
- Fixed start menu page setting the error flag (bug #1891106)
nsDialogs
- NSD_AddStyle and NSD_AddExStyle for easy customization (patch #1900588)
- NSD_CB_AddString, NSD_CB_SelectString, NSD_LB_AddString and NSD_LB_SelectString for easier handling of combo and list boxes
- NSD_CreateNumber and NSD_SetTextLimit for limited input fields
- NSD_SetImage, NSD_SetStretchedImage, NSD_ClearImage and NSD_FreeImage for image handling
- NSD_SetState, NSD_GetState, NSD_Check and NSD_Uncheck for handling of check boxes and radio buttons (patch #1900588)
- NSD_SetText for easily setting control's text
- OnClick support for labels (bug #1908732)
- Support for edit box change notification in combo box
Minor Changes
- Fixed exception handling of UPX compressed icons (bug #1896500)
- Fixed InstallDirRegKey example in bigtest.nsi
- Fixed Memento's documentation to include ${MementoSectionDone}
- Fixed rare decompression error with 0x4001 bytes of compressed data (bug #1874297)
- LangFile.nsh: Added LANGFILE_INCLUDE_WITHDEFAULT to load language file with defaults being obtained from a default file. This replaces the LANGFILE_DEFAULT setting and makes it easier to use LangFile.nsh for multiple sets of languages file without having to care about the different LANGFILE_DEFAULT settings.
- Minor documentation improvements (including bug #1891266, bug #1894033, bug #1896803)
- MultiUser: Fixed error when a custom installation mode initialization function is used only for the installer
- MultiUser: Fixed default installation mode based on registry key (bug #1913029)
- MultiUser: Fixed no uninstaller handling (MULTIUSER_NOUNINSTALL)
Utilities and Plug-ins
- MakeNSISW: Avoid opening executables with identical folder names when opening script's folder (bug #1891066)
- nsExec: Fixed return code handling so 259 won't cause an infinite loop (bug #1909458)
- VPatch: Added MD5 functions (RFE #1900226)
Translation
- Albanian updates (patch #1919360)
- French fixes (patch #1916564)
- Polish updates (patch #1894983)
Build System
- Fixed build of NSIS Menu with wxGTK (bug #1900233)
- Use CRLF for DSW and DSP files to avoid corruption messages
- Various build fixes for GCC 4.3, amd64 and Linux in general