スクリプトを書かずに NSIS インストーラーをオンラインで作成する
NSIS とは何か、最小限の .nsi スクリプトはどのようなものか、そしてスクリプトではなくフォームから Modern UI ウィザード、ショートカット、アンインストーラー付きの標準的な NSIS Setup.exe を手に入れる方法を解説します。
更新日 2026年10月31日 · 読了 5 分
NSIS(Nullsoft Scriptable Install System)は、20 年以上にわたって Windows インストーラーを静かに支えてきた働き者です。VLC、7-Zip、Audacity、そして数えきれないほどの Electron アプリが NSIS で配布されています。無料で、小さなインストーラーを生成し、スクリプトに書かれたとおりに正確に動作します。しかし、多くの人を立ち止まらせるのもそのスクリプトです。ほとんどのアプリがどのみち同じ形で欲しがるウィザードを手に入れるために、マクロ言語を学ばなければなりません。このガイドでは、スクリプトに何が必要かと、スクリプトを書かずに同じインストーラーを手に入れる方法を説明します。
NSIS がすること
makensis はテキストのスクリプト(.nsi)を、単体で動作する Setup.exe にコンパイルします。スクリプトには、ウィザードのページ、インストールするファイル、作成するショートカットとレジストリエントリ、そしてそれらをすべて元に戻すアンインストールセクションを記述します。Modern UI(MUI2.nsh)を使えば、おなじみのようこそ、ライセンス、フォルダー、進行状況、完了の各ページが、数十の言語に翻訳された状態で手に入ります。
出力はコンパクトです。ソリッド LZMA 圧縮は、同じファイルの zip より小さくなることがよくあります。インストーラーは追加の作業なしに、サイレントモード(/S)とカスタムインストールフォルダー(/D=)に対応します。
スクリプトはどのようなものか
アプリフォルダー向けの最小限で現実的なスクリプトは、およそ 80 行になります。骨組みは次のとおりです。
!include MUI2.nsh
Name "My App"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES64\My App"
RequestExecutionLevel admin
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section "Install"
SetOutPath "$INSTDIR"
File /r "app\*"
WriteUninstaller "$INSTDIR\uninstall.exe"
CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\MyApp.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "DisplayName" "My App"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "UninstallString" "$INSTDIR\uninstall.exe"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\MyApp.exe"
RMDir /r "$INSTDIR"
Delete "$SMPROGRAMS\My App.lnk"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App"
SectionEnd
実際のスクリプトはここからさらに膨らみます。ファイルのプロパティに表示されるバージョン情報、デスクトップのショートカット、64 ビットのレジストリビュー、$LOCALAPPDATA 配下へのユーザーごとのインストール、言語選択ダイアログ、「インストール後に起動」、Windows の設定に表示される推定サイズ、そしてフォルダー全体ではなく自分がインストールしたファイルだけを削除するアンインストーラー(ユーザーは実際に自分のファイルをアプリの隣に置きます)。どれも数行ですが、どれも細部を間違えやすい場所です。
フォームから同じインストーラーを手に入れる
ExeTup は NSIS インストーラービルダーです。あなたの回答から上のようなスクリプトを生成し、クラウド上で makensis を使ってコンパイルし、Setup.exe を渡します。入力する内容は次のとおりです。
- ファイル:アプリフォルダーの zip、または単一の
.exe。必要に応じて、一緒にインストールする「その他のファイル」。 - 詳細:名前、バージョン、発行元、Web サイト、ライセンスのテキスト。
- オプション:すべてのユーザーか現在のユーザーか、64 ビットか 32 ビットか、スタートメニューとデスクトップのショートカット、インストール後に起動、スタートアップ時に起動。
- 言語:15 言語から任意に選択。複数を選ぶと NSIS の言語ダイアログが表示されます。
- アイコン:インストーラーとショートカットに使う
.ico。
結果は、Modern UI、ソリッド LZMA 圧縮、Windows の設定に登録されるアンインストーラー、ファイルのプロパティのバージョン情報、/S によるサイレントインストールを備えた標準的な NSIS インストーラーです。入力した値はすべて、スクリプトに渡される前にエスケープされます。NSIS スクリプトはコンパイル時にコマンドを実行できるため、これは重要です。
自分でスクリプトを書くべきとき
カスタムページ、プラグイン、条件付きセクション、サービスのインストール、あるいはすでに Windows 上でビルドしている CI パイプラインとの統合が必要な場合は、NSIS を手で書いてください。NSIS のドキュメントと同梱のサンプルは良くできています。標準的なウィザード、ショートカット、アンインストーラーが必要なだけのアプリなら、スクリプトを生成するほうが速く、間違いも起きにくくなります。
よくある質問
出力されるのは本物の NSIS インストーラーですか?
はい。ExeTup は NSIS スクリプトを生成し、公式の makensis でコンパイルします。Setup.exe は /S や /D= スイッチを含め、他の NSIS インストーラーと同じように動作します。
生成された .nsi スクリプトをダウンロードできますか?
スクリプトはビルド時に設定から生成されます。ダウンロードするのはインストーラーそのものです。そのオプションはビルド前のプレビューで確認できます。
NSIS は Mac や Linux で動きますか?
makensis は 3 つのプラットフォームすべてでコンパイルでき、Homebrew と apt でパッケージが提供されています。それでもスクリプトは自分で書く必要があります。ExeTup に必要なのはブラウザーだけです。Mac で Windows インストーラーを作成するを参照してください。
対応している言語は?
英語、簡体字中国語、ヒンディー語、スペイン語、フランス語、アラビア語、ブラジルポルトガル語、ロシア語、インドネシア語、ドイツ語、日本語、トルコ語、韓国語、ベトナム語、イタリア語で、NSIS 自身の翻訳を使用します。
関連ガイド
- Windows アプリの Setup.exe を作る方法(コード不要)Setup.exe が実際に行うこと、作成する3つの方法、そしてインストーラースクリプトを書かずにアプリのフォルダーを数分でプロ品質のインストーラーに変える方法を解説します。
- Inno Setup の代替:スクリプト不要で Windows インストーラーをオンライン作成Inno Setup が得意なこと、スクリプト不要のオンラインビルダーが向くケース、そしてウィザード・ショートカット・アンインストーラー付きの同等な Setup.exe をフォーム入力だけで作る方法を解説します。
- Setup.exe のサイレントインストール:/S スイッチ、フォルダー指定、展開NSIS 製の Setup.exe を /S でサイレント実行し、/D= でインストール先を指定し、サイレントでアンインストールし、Intune、PDQ、スクリプトで展開する方法。