這是歷史版本頁面 — 看 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 的安裝程式製作工具。
下載與官方連結
nsis205.exe · 1.63 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:
New/Changed Commands
- Renamed SubSection and SubSectionEnd to SectionGroup and SectionGroupEnd
- SectionSetFlags, when used on a section group, toggles its children too
- SectionSetText works better with variables (parses immediately and treats an empty variable as an empty string)
- SetCurInstType works without the components page
Minor Changes
- Added Breton translation
- AdvSplash: Fixed double delay time in some cases
- Documentation fixes and enhancements (including patch #1098454)
- Fixed case sensitive name comparison with File /x, when not using wildcards
- Fixed extraction status ending prior to 100%
- Fixed negative values of available space in the directory page (bug #1114876)
- Fixed system.nsi example crash (bug #1102255)
- Fixed unused label warnings with Library macros
- Improved some error messages
- InstallOptions 2.42: Added an image displaying example, added TRANSPARENT flag for BITMAP fields (RFE #1079715 - funded by Chris Morgan)
- Invisible sections weren't always affected by a change of the installation type (bug #1045722)
- Language file fixes
- Made pages refresh after an aborted leave function
- Partially selected section groups can now be toggled