這是歷史版本頁面 — 看 NSIS 最新版本

NSIS 是什麼?Windows 安裝程式製作工具解析

NSIS 軟體圖示 NSIS 2.34 資料更新 2007-12-25 閱讀約 5 分鐘

寫完一支程式,想丟給別人用,卻發現對方拿到檔案不知道怎麼裝。你試過把資料夾壓縮寄過去,但對方解壓縮後執行檔東缺西缺,根本跑不起來。你需要的是一個能讓使用者雙擊、下一步、下一步就裝好的安裝程式,而不是叫對方自己處理一堆檔案。

手動建立安裝程式不是不行,但用一般壓縮工具做出來的東西,沒有開始功能表捷徑、沒有解除安裝選項,更別提檢查系統環境或寫入登錄檔。這類工具切入點是:用一套腳本描述「安裝時要做哪些事」,然後產生一個獨立的執行檔,讓使用者照著精靈步驟走完,安裝、設定、解除安裝都幫你處理好。

NSIS 操作介面
NSIS 的操作介面

01NSIS 這套軟體是做什麼用的?

它是一套用來建立 Windows 安裝程式的工具。你寫好安裝腳本,它會編譯成一個獨立的 .exe 執行檔,使用者執行後就能照著精靈步驟安裝你的軟體。官方說明指出它特別適合網路發行,因為產生的安裝檔很小,預設情況下額外負擔只有約 34 KB,對頻寬有限的使用者來說比較友善。

02它能壓縮安裝檔嗎?支援哪些壓縮格式?

可以。它內建支援 ZLib、BZip2 和 LZMA 三種壓縮方式,檔案可以個別壓縮或全部一起壓縮。LZMA 壓縮率較高,但壓縮時間也較長,你可以依安裝檔大小和使用者下載時間的需求來選擇。這部分在官方功能列表中有明確列出。

03安裝程式能讓使用者自己選要裝哪些元件嗎?

可以。它提供元件選擇樹狀介面,使用者可以勾選要安裝哪些部分。也支援多種安裝組態,常見的有 Minimal、Typical、Full 三種預設組合,開發者也可以自訂其他組態。這對功能較多、想讓使用者只裝需要的部分的軟體很有用。

NSIS 介面畫面 2
NSIS 介面畫面

04安裝程式可以顯示授權協議嗎?

可以。它支援在安裝過程中顯示授權協議,文字格式支援純文字和 RTF 兩種。你可以在腳本中指定協議檔的路徑,安裝程式就會在精靈流程中插入一個顯示協議的頁面,使用者必須同意才能繼續安裝。

05它能產生解除安裝程式嗎?

可以。安裝程式可以同時產生一個解除安裝程式,使用者之後可以透過它移除軟體。解除安裝程式會記錄安裝時寫入的檔案和登錄檔項目,移除時一併清理。這對維持使用者系統整潔很重要,也是它內建的功能之一。

06這套軟體適合什麼樣的人用?

適合需要對安裝流程有完整控制權的開發者。因為它是腳本式的,你可以寫邏輯處理複雜的安裝任務,例如偵測目的地目錄、與 Windows 或其他軟體元件溝通、安裝或更新共用元件。如果你只是要一個簡單的「下一步下一步」安裝包,它也能做到,但學習腳本語法需要一些時間。

NSIS 介面畫面 3
NSIS 介面畫面

07我不會寫程式,能用這套軟體嗎?

可以,但門檻比圖形化工具高。它本質上是腳本驅動,你需要理解安裝腳本的語法才能自訂安裝流程。官方提供了多個現成的腳本和外掛可以參考,也有超過 40 種語言的翻譯檔可以直接使用。如果你完全不想碰腳本,可以考慮其他圖形介面的安裝程式製作工具。

08它支援多國語言嗎?

支援。官方說明指出它完全多語系,一個安裝程式可以內含多種語言,包括由右至左書寫的語言。目前已有超過 40 種翻譯可用,你也可以自己建立新的語言檔。使用者在安裝時可以選擇自己慣用的語言,這對跨國發行軟體很有幫助。

09這套軟體還在持續更新嗎?

根據現有資料,它的版本紀錄最後一次更新停在 2020 年 8 月,近 24 個月內沒有新版本。如果你在意安裝程式製作工具是否持續維護,這點需要列入考量。功能上它仍然可用,但如果你需要較新的技術支援或修補,可能要評估其他更新較頻繁的替代方案。

NSIS 介面畫面 4
NSIS 介面畫面

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.34-setup.exe · 1.48 MB

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

Release Notes
- Thanks to user input on Modern UI 2, it is now ready for mass consumption at no better time than the holiday season. The installer for NSIS itself now exploits the wonders of MUI2 and nsDialogs and so should you.

Major Changes
- Modern UI 2: Simpler code, easier to extend and makes use of the faster nsDialogs

Minor Changes
- Added IfNot support for LogicLib (patch #1846785)
- Added some deprecation messages in MUI2 (bug #1784470)
- Allow overwrite of LANGFILE_*_NAME defines in new LangFile.nsh (bug #1848952)
- Better RTL support in instfiles and components page (bug #1841573)
- Fixed deletion of files with relative paths, a.k.a the EVE bug (bug #1851273)
- Fixed input verification of GetCurInstType and GetFullPathName
- Fixed WordFind handling of MBCS characters (bug #1852141)
- Minor documentation improvements (including bug #1842326)
- Use CRLF in examples (bug #1835866)
- Warn of comments containing line-continuation character, only when it really has an effect (bug #1701051, RFE #1686589)

Utilities and Plug-ins
- Added missing stack handling in nsDialogs examples
- Added NSD_GetState for checkboxes and radio buttons, NSD_SetFocus, NSD_CreatePassword and NSD_CreateDropList (patch #1848940)
- Fixed documentation of nsDialogs::SelectFolderDialog (bug #1841120)
- Fixed NSD_CreateComboBox so it'd work like InstallOptions (bug #1851136)

Translations
- Bulgarian updates
- German fixes

Build System
- Fixed build issues on Mac OS (bug #1851365)
- Fixed endianity issues introduced in version 2.32 (bug #1851365)