本文へスキップ

スクリプトを書かずに 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 自身の翻訳を使用します。

関連ガイド