.NET Framework Version 2.0 から、32 ビット バージョンの共通言語ランタイム (CLR) はこれまで同様に 32 ビット バージョンのインストーラ ツールにのみ付属し、64 ビット バージョンの CLR は 32 ビットおよび 64 ビットの両方のバージョンのインストーラ ツールに付属するようになりました。64 ビットの CLR を使用しているときは、32 ビットのアセンブリをインストールするには 32 ビットのインストーラを使用し、64 ビットおよび Microsoft Intermediate Language (MSIL) のアセンブリをインストールするには 64 ビットのインストーラを使用します。このように使い分けないと、両方のバージョンのインストーラ ツールが同様に動作します。
Microsoft .NET Framework アプリケーションは、従来のプログラム ファイルと関連リソースで構成されます。関連リソースには、メッセージ キュー、イベント ログ、パフォーマンス カウンタなどがあり、アプリケーションを配置するときにこれらのリソースを作成する必要があります。アセンブリのインストーラ コンポーネントを使用すると、アプリケーションのインストール時にこれらのリソースを作成したり、アプリケーションのアンインストール時に削除したりできます。Installutil.exe は、これらのインストーラ コンポーネントを検出して実行します。
同じコマンド行に複数のアセンブリを指定できます。アセンブリ名の前に指定したオプションは、そのアセンブリのインストールに適用されます。あるアセンブリに指定したオプションは、そのオプションを新しいアセンブリ名と共に指定しない限り、後続のすべてのアセンブリに適用されます。
オプションを指定せずにアセンブリに対して Installutil.exe を実行すると、次の 3 つのファイルがアセンブリのディレクトリ内に作成されます。
-
InstallUtil.InstallLog
インストールの進行状況に関する一般的な説明が含まれます。
-
assemblyname.InstallLog
インストール プロセスのコミット フェーズに固有の情報が含まれます。コミット フェーズの詳細については、「Commit メソッド」を参照してください。
-
assemblyname.InstallState
アセンブリをアンインストールするために使用したデータが含まれます。
Installutil.exe は、指定されたアセンブリを調査するときにリフレクションを使用し、RunInstallerAttribute が true に設定されたすべてのインストーラ タイプを検索します。次に、Installer タイプの各インスタンスについて、メソッドのインストールまたはメソッドのアンインストールを実行します。Installutil.exe は、トランザクション的な方法でインストールを実行します。つまり、いずれかのアセンブリのインストールに失敗した場合には、他のすべてのアセンブリのインストールをロールバックします。アンインストールはトランザクション的な方法では実行されません。
Installutil.exe では、遅延署名されたアセンブリのインストールおよびアンインストールはできませんが、厳密な名前付きアセンブリのインストールおよびアンインストールはできます。
C++ を使用して作成した Windows サービスを Installutil.exe で配置することはできません。Installutil.exe は、C++ コンパイラで作成される埋め込みのネイティブ コードを認識できません。C++ Windows サービスを Installutil.exe で配置しようとすると、BadImageFormatException などの例外がスローされます。これを行うには、サービス コードを C++ モジュールに移行します。次に、インストーラ オブジェクトを C# または Visual Basic で記述します。