【Unity、Winforms】インストーラーを作成する

2026年6月2日

広告

InnoSetupを使ってインストーラを作成します
UnityでプラットフォームがWindowsのアプリを作成した場合、ビルド後に作成された複数のファイルをzipなどで圧縮して送付し、解凍後に使ってもらうのも美しくないので、よくあるインストーラー形式でインストールしてもらえるようにする方法について説明します

工程が多いように思われますが、一度作成すると、設定ファイルが作成されるために2度目からは楽に作成することができます

実行結果サンプル

このツールで作成したインストーラーを実行した結果です

ダウンロード

ダウンロードサイト

ダウンロードファイルの選択

ビルドフォルダの構成

Unityでのビルドフォルダの構成になります
ビルド時にBuildsフォルダを作成し、そのフォルダ内にビルドします

リリースビルドします

リリースフォルダに実行ファイルが作成されます
キャプチャは.NET8の場合になります(net8.0-windowsフォルダ)
.NetFrameworkの場合は、Releaseフォルダの直下に格納されます

ウィザードでのインストーラー作成手順

設定ファイルの作成設定

インストーラ設定ファイル保存することができます
最初なので新しく作ります

ウィザードを開始

アプリケーション情報の設定

アプリケーション名、バージョン、制作会社、ウェブサイトを必要に応じて入力します

インストール先の設定

基本、デフォルトのままでOKです

アプリケーションの存在場所の指定

Application main executable File

アプリケーション実行ファイルを選択します
Browseボタンを押して、ファイルを選択します
このサンプルでは、Test.exeになります

(必要に応じて)アプリケーションを実行するために必要な他のファイル

Add Folderボタンを押して、フォルダを選択します
このサンプルでは、Buildsフォルダを選択します

実行ファイルと共に、DLLファイルも必要となりますので、ビルドされたアプリケーションがあるフォルダを指定します

サブフォルダも選択するか確認されますので、はいを選択します

拡張子の関連付け

アプリケーションに拡張子の関連付けを登録できます

デフォルトのままでOKです

Please specify which file association should be create for your application
アプリケーションに作成するファイル関連付けを指定してください。
Associate a file type to the main executable
ファイルタイプをメイン実行ファイルに関連付ける

スタートメニュー、デスクトップショートカットの作成

必要に応じて設定します

Create a shortcut to the main executable int the start menu programs folder
スタートメニューのプログラムフォルダにメイン実行ファイルへのショートカットを作成する

  • Allow user to change the Start Menu folder name
    ユーザーがスタートメニューフォルダ名を変更できるようにする
  • Allow user to disable Start Menu folder creation
    ユーザーがスタートメニューフォルダの作成を無効にすることを許可する
  • Create an Internet shortcut in the Start Menu folder
    スタートメニューフォルダにインターネットショートカットを作成する
  • Create an Uninstall shortcut in the Start Menu folder
    スタートメニューフォルダにアンインストールショートカットを作成する
  • Other shortcuts to the main executable: Allow user to create a desktop shortcut
  • メイン実行可能ファイルへのその他のショートカット:ユーザーがデスクトップショートカットを作成できるようにする

ライセンス関係の設定

ライセンスについて規定がある場合、必要に応じて設定します

管理者権限でインストールするかの設定

このままでOKです

インストーラーの言語設定

日本語にしています

出力されるインストーラーの名前

適切な名前を入力します

Gitで管理もできるようにプロジェクト(VisualStudio単体作成の場合は、ソリューション)フォルダをoutputフォルダに指定するといいでしょう

Compiler output base file name:は、インストーラーのファイル名の指定になります

セットアップ用ファイルの設定

このままでOKです

設定登録終了画面

実行の確認

入力した設定情報がファイルになります

その情報に従い、インストーラーアプリを作成しますので、はいをクリックします

コンパイル前の保存確認

まだ、保存されていないため、はいをクリックします

インストーラーが作成される場所

上記設定で、次の場所に作成されます
あとは、実行するだけです
アンインストールも可能です

開発PCで試す時(Windows11)

インストーラを実行すると次のように警告が出ると思います

これは Windows 11 の スマートアプリコントロール(Smart App Control / SAC) が、ビルドした Unity アプリ(Gallop Chaser.exe)をブロックしている状態です。

何が起きているか

SAC は「署名されている、かつ Microsoft が安全と判断(評価)できる」アプリだけを実行許可する、かなり厳しめのセキュリティ機能です。実行ファイル exe は:

  • コード署名されていない(発行元が確認できない)
  • 新規ビルドなので Microsoft 側に実行実績(レピュテーション)がない

ため、「安全と確認できない=ブロック」となっています。マルウェアだから、ではなく素性が不明だから止められている状態です。

ここで先ほどの Inno Setup の話とも絡みますが、Inno Setup でインストーラーにまとめても、署名がなければ同様にブロック/警告されます。SAC は中身の exe も見るので、ラッピングだけでは回避できません。

対処法

状況によって分かれます。

① 自分のPCで動かしたいだけ(開発・確認用)

一番手っ取り早いのは SAC をオフにすることです。Windows セキュリティ → アプリとブラウザーの制御 → スマートアプリコントロールの設定 → オフ

⚠️ ただし重要な注意点があります。SAC は一度オフにすると、Windows を初期化(再インストール)しない限り再びオンにできません。オン⇔オフを気軽に切り替えられない仕様なので、ここは理解した上で判断してください。開発機なら割り切ってオフにする人も多いです。

② 他人に配布したい(外部公開する)

この場合は コード署名証明書(Authenticode) でアプリ(と Inno Setup インストーラー)に署名するのが正攻法です。

  • OV証明書: 安価だが、SmartScreen / SAC の信頼が貯まるまで時間(ダウンロード実績)が必要
  • EV証明書: 高価だが、SmartScreen で即時に信頼される。SAC でも有利

signtool.exe(Windows SDK 付属)で exe に署名 → Inno Setup の SignTool ディレクティブでインストーラーにも署名、という流れになります。


訪問数 281 回, 今日の訪問数 1回

広告

C#,Unity

Posted by hidepon