Inno Setup でカスタムインストーラを作成するための実践ガイド

最終更新: 09/09/2025
  • Inno Setupは、堅牢なインストーラーを提供します。 Windows 完全な制御を介して スクリプト x64 サポート。
  • CodeDependencies と netcorecheck を使用して .NET 6 を検証すると、信頼性の高い実行が保証されます。
  • 適切な構成: 一意の GUID、LZMA 圧縮、管理者権限、多言語。
  • 公開前にサービスを自動化(作成、開始、停止、削除)し、VM 上で検証します。

Inno Setup を使用した Windows 用インストーラー

Windowsで独自のインストーラーを作成するのは、大規模なチームだけのものではありません。適切なツールがあれば、アプリケーションをパッケージ化し、洗練されたインストールエクスペリエンスを数分で提供できます。ここでは、その活用方法を詳しく説明します。 カスタムインストーラーを構築するためのInno Setup要件、64 ビット アーキテクチャ、.NET プロジェクトの公開、依存関係のチェックを考慮します。

以下の行では、プロジェクトの準備からインストーラのコンパイルとテストまで、すべてを網羅した完全かつ実用的なガイドを紹介します。また、 よくある間違いを避けるための重要なヒント (GUID の重複や、公開されたファイルをすべて含め忘れるなど)、また、アプリで必要な場合に Windows サービスのインストールを自動化する方法を説明します。

Inno Setupとは

Inno Setup とは何ですか? また、どのように機能しますか?

Inno Setupは、グラフィカルなウィザードと インストーラの動作を定義する中心的なスクリプト (パラメータ、タスク、チェックなど)。このスクリプトでは、インストール場所からデスクトップやスタートメニューのショートカットまですべてを制御できます。 追加の情報源またはリソース次のような補完的な解決策もあります。 Ninite 自動化されたソフトウェア展開用。

互換性に関しては、Windows 10、8、7、Vista、Server 2003、XP(​​x64エディションを含む)、2000、NT 4.0、9xなど、非常に幅広いシステムをカバーしています。さらに、 64ビットアプリケーションのインストールと特定のインストーラーの作成 そのアーキテクチャでは、パフォーマンスと現在のプラットフォームとの整合性を求めている場合に特に関連します。

前提条件

Inno Setupでインストーラを作成するための要件

始める前に、以下の要素が揃っていることを確認してください。それぞれに特定の目的があり、テストや修正にかかる時間を節約できます。 冷静に見直す:

  • Inno Setup(最新の安定バージョン)既にインストールされている場合はインストールするか、アップデートしてください。特定のスクリプトや拡張機能をスムーズに動作させるには、最新の状態を維持することが重要です。
  • Inno Setup 依存関係インストーラーリポジトリからコードをダウンロードし(「ソースをダウンロード」オプションを選択)、解凍します。そこからCodeDependencies.issファイルとnetcorecheck_x64.exe実行ファイルのXNUMXつのファイルが必要になります。これらは、 .NETの確認/インストール.
  • .NET 6 プロジェクト独自のものを使用することも、サンプルのものを作成することもできます。重要なのは、バイナリがインストーラーにパッケージ化されるように正しく公開することです。
  • テスト用の仮想マシン(推奨): 必須ではありませんが、インストーラーを反復する際にメイン コンピューターに不要な影響が及ばないようにするために、強くお勧めします。

プロジェクトで 64 ビット アーキテクチャを強制する

現在、ほぼすべてのコンピューターは64ビットで動作するため、アプリケーションをx64でコンパイルすると、パフォーマンスと互換性が向上します。Visual Studio 2022では、アーキテクチャを強制的に変更して、アプリをxXNUMXで実行できるようにすることができます。 64ビット向けインストーラー.

Visual Studioのトップバーで、構成セレクター(デバッグ/リリース)の横にあるプラットフォームドロップダウン(通常は任意のCPU)をクリックし、 構成マネージャーそこから、x64 を選択して新しいプラットフォームを作成し、任意の CPU から構成をコピーし、ソリューション プロジェクトでもプラットフォームを生成するためのボックスをオンにします。

  この機能はリクエストされました。このマルウェアエラーを修正する5つの方法

ダイアログを閉じた後、x64プラットフォームを選択すると、xXNUMXでコンパイルされるようになりました。この変更はインストーラーをビルドする際に特に便利です。Inno Setupでは、xXNUMXでインストールするように指定できるためです。 64ビットモードバイナリと一致します。

プロジェクトを公開する

アプリケーションをパッケージ化するには、適切なプロファイルを持つフォルダに公開するのが最適です。これにより、インストーラーは必要なファイルを正確にコピーし、開発リソースをドラッグしません。目標は、必要なバイナリを含むディレクトリを用意することです。 Inno Setup は {app} にコピーします.

Visual Studio 2022でプロジェクトを右クリックし、「発行」を選択します。発行先として「フォルダー」を選択します。構成画面で「すべての構成を表示」を開き、プロファイルを次のように設定します。 リリース | x64必要に応じて公開パスを調整できます。調整しない場合は、デフォルトの公開プロファイルの場所が使用されます。

最後に「発行」をクリックします。Visual Studioはコンパイルを行い、実行ファイルと依存関係を指定したディレクトリに配置します。このパスはスクリプト内で後ほど使用するので、 マクロで参照するので手元に置いてください すべてのファイルを指します。

Inno Setupでスクリプトを準備する

Inno Setup を開き、空のスクリプトを作成します。依存パッケージの2つの主要ファイルとともに、作業フォルダに保存します。 CodeDependencies.iss と netcorecheck_x64.exeこうすることで、同じディレクトリに3つの初期要素(.issスクリプト、依存関係ライブラリ、.NETチェッカー)が保存されます。必要に応じて、.issスクリプトの作成方法に関するガイドを参照してください。 .bat スクリプトを使用したミニインストーラー スクリプトの基本的な構造を理解する。

スクリプトの構造は、複数のセクションとディレクティブを中心に構成されており、設定方法、コピーされるファイル、作成されるショートカット、インストール前、インストール中、インストール後に実行されるアクションなどを制御します。以下では、検証機能を備えた最新の64ビットインストーラーに必要な基本事項を説明します。 対象コンピュータ上の.NET 6.

セットアップセクション: ID、圧縮、64ビット

セットアップでは、製品のID、デフォルトのパス、インストーラのパラメータを定義します。 一意の AppId (GUID)これを取得するには、Inno Setup 独自のオプション「ツール」→「GUID を生成」をご利用ください。異なるインストーラ間で GUID を再利用すると、システムがそれらを混同し、あるインストールが別のインストールの更新として扱われる可能性があります。

マクロのセットは通常、主要な情報をマッピングするために使用されます。たとえば、 #define MyAppName, #define MyAppVersion, #define MyAppPublisher, #define MyAppURL, #define MyAppExeName、またはアプリで必要な場合はサービス名のマクロ( #define MyService)。また、次のようなマクロを使用して、公開フォルダとターゲットのインストールフォルダを定義します。 #define PublishFolder y #define InstallationDir.

その情報を使用して、インストーラー フィールドをマップします。 AppName, AppVersion, AppPublisher, AppPublisherURL, AppSupportURL, AppUpdatesURL, DefaultDirName (通常はInstallationDir + MyAppNameの組み合わせ) DefaultGroupName y OutputBaseFilename (インストーラーの実行ファイルが生成される名前)。パッケージングの場合、通常は有効になっています。 圧縮lzmaとSolidCompressionは有効、と WizardStyle 最新の管理者権限 PrivilegesRequired=admin また、該当する場合は、 ArchitecturesInstallIn64BitMode=x64 64 ビットでインストールします。

コードセクション: .NET 6 テスト

依存関係ライブラリを使用すると、初期化中に.NET 6 Desktopが存在するかどうかを確認する呼び出しを追加できます。存在しない場合は、インストーラーが提案します。 自動的にインストールする初期化関数(InitializeSetup)ライブラリが提供する手順を呼び出すだけです。 Dependency_AddDotNet60Desktop続行するには True を返します。

  The Sims 4の言語を変更する[シンプルな解決策]

これを機能させるには、ファイルがスクリプトと同じフォルダにある必要があることに注意してください。 CodeDependencies.iss そして実行ファイル netcorecheck_x64.exe最初のものはスクリプトに含まれており、2番目のものはインストールフォルダ内のアプリと一緒に配布され、 ランタイムチェック.

言語セクション:多言語インストーラー

Inno Setupでは、ウィザードインターフェースに複数の言語を追加できます。必要な言語を有効にできます。例: 英語、カタロニア語、フランス語、ポルトガル語、スペイン語各言語は、次のようなメッセージファイルを参照します。 compiler:Default.isl またはスタイルのルート compiler:Languages\Spanish.islすべてが必要ない場合は、使用しないものをコメントアウトしたままにしておきます。

インストーラーで複数の言語を設定するとエクスペリエンスが向上しますが、カスタム テキスト (アプリケーション名やサポート URL など) が特定の言語を対象としていることを確認することを忘れないでください。 国際的な公共または明確に地域化された、あなたの場合に応じて。

ファイルセクション: コピーするものと除外するもの

ここで、ファイルのソース(公開フォルダ)と出力先(通常は {app})。重要な点として、公開マクロでは、パスの末尾にアスタリスクを付けたままにしておきます(たとえば、 \公開\*)を使用すると、インストーラはディレクトリとサブディレクトリ内のすべてのファイルをコピーします。ワイルドカードを使用しない場合は、 必要なファイルを忘れる パッケージの中に。

特定の設定ファイルや一時ファイルを配布したくない場合は、除外ルールを追加するのが一般的です。例えば、 conf.xml その設定を実行時に生成するか、別の方法で配布するかを選択します。 一般的な旗 として ignoreversion, recursesubdirs y createallsubdirs ファイルのコピー方法を制御します。また、従来のインストールファイル(例えば .inf ファイル インストールで必要な場合。

このセクションに実行可能ファイルを含めることを忘れないでください。 netcorecheck_x64.exe アプリケーションフォルダ内に配置します。これは、コードセクションで設定した依存関係チェックと連動し、 堅牢な設置.

アイコンセクション: ショートカット

したい場合は ショートカットを作成する プログラムグループで、メインの実行ファイルを指すエントリを定義します。例えば、 {#MyAppName} そして彼は投げる {app}\{#MyAppExeName}必要に応じて、さらにショートカット(デスクトップ、ホームなど)を作成することもできますが、 少ないです あまり多くのオプションを提供してユーザーに負担をかけないようにすることをお勧めします。

実行とアンインストール実行セクション: サービスとタスク

アプリケーションがWindowsサービスとして実行される場合、インストーラー自体からライフサイクルを管理できます。既存のサービスを停止して削除し、新しいサービスを作成して、 {app}\{#MyAppExeName} 自動起動し、ファイルをコピーした後に起動します。これらはすべて sc.exe 適切なパラメータ(stop、delete、binPathでcreate、start)を渡して、隠しモードで起動します。 コマンド インストーラーから、 インストーラーからCMDを開く プロセスとサービスを管理します。

アンインストールでは、プロセスを終了し、サービスを停止して削除するアクションを定義できます。コマンド taskkill 実行ファイルがまだ実行中の場合は閉じ、その後 sc.exe stop y sc.exe deleteこうすることで、削除が確実にクリーンになり、作業終了時にアクティブなサービスの痕跡が残らないようになります。 アンインストーラー.

  Windows での Shutdown /r /o の使用と便利な代替手段 (Linux の場合)

スクリプトの要点とよくある間違い

最後のワイルドカードはポストマクロに残しておきましょう。よくある間違いは、 PublishFolder の末尾のアスタリスクすると、必要なファイルがすべてコピーされなくなります。また、必要なファイルがコピーされてしまうことのないよう、除外リストも必ず確認してください。

常に新しいGUIDを生成する AppId複数のアプリケーションで同じIDを共有している場合、Inno Setupはこれをスタンドアロンインストールではなくアップデートと解釈することがあります。これは、 アンインストール中の奇妙な動作 またはコントロール パネルのエントリにあります。

必要に応じて64ビットインストールをマークします。 ArchitecturesInstallIn64BitMode=x64 インストーラをx64バイナリに合わせて調整し、不要なシステムリダイレクトを回避します。 必要な権限=管理者 保護された場所に書き込む、サービスを登録する、またはシステム リソースをインストールする必要がある場合。

含まれている言語を確認してください。インストーラーが特定のユーザーを対象としている場合は、必要な言語のみを使用してください。必須の言語のみにすることで、パッケージが簡素化され、不整合のリスクが軽減され、操作性が向上します。 使用経験.

インストーラーのコンパイル

準備ができたら、コンパイルしましょう。Inno Setupで「ビルド」→「コンパイル」を選択します。エラーがなければ、指定した名前でインストーラーの実行ファイルが生成されます。 OutputBaseFilenameすぐに見つけるには、[ビルド] → オプションを使用します。 出力フォルダーを開く ファイルが期待どおりの場所にあることを確認します。

エラーが表示された場合は、まず依存ライブラリのインクルードと、 CodeDependencies.iss y netcorecheck_x64.exe、および公開パス。多くの場合、エラーはパスのスペルミス、ファイルの不足、または 無効なGUID AppId で。

推奨されるテスト

すべてがスムーズに動作することを確認するには、仮想マシンにインストールするのが最適です。これにより、インストーラーがすべてのファイルをコピーし、ショートカットを作成し、.NET 6などの依存関係を管理し、必要に応じて サービスをインストールして開始する ホストシステムと競合することなく。

インストーラーを実行した後、アプリケーションが期待通りに動作していることを確認してください。サービスの場合は、Windowsのサービスツールまたは sc queryタスク(例えば、ファイルにレコードを書き込む)が実行され、マシンを再起動したときにサービスが 自動のまま.

コントロールパネルからアンインストールしてみてください。これにより、サービスが停止・削除され、インストールフォルダからファイル(残すことを選択したファイルを除く)が削除され、ショートカットとシステムエントリも削除されます。正しく削除されない場合は、「実行」および「アンインストール」セクションを確認して、操作の順序を調整するか、 sc.exe パラメータ.

Inno Setup は、x64 環境への準備、慎重な公開、依存関係のチェック、そしてサービスライフサイクルの管理を組み合わせることで、ユーザーにプロフェッショナルなインストーラーを提供できます。これらの手順に従い、重要なポイント(一意の GUID、PublishFolder のワイルドカード、権限、言語)を監視することで、Windows インストーラーの作成と保守が容易になります。 予測可能、繰り返し可能、そして驚きがない.

exeインストーラー
関連記事
Windowsプログラム用の独自のインストーラーを作成する方法