インストーラ ツール (Installutil.exe)
更新 : 2007 年 11 月
インストーラ ツールを使用すると、指定したアセンブリ内のインストーラ コンポーネントを実行することによって、サーバー リソースのインストールとアンインストールを実行できます。このツールは、System.Configuration.Install 名前空間内のクラスと連動します。
installutil [/uninstall][option [...]]assemblyname ]
[option [...]]assemblyname
解説
引数 |
説明 |
---|---|
assemblyname |
インストーラ コンポーネントを実行するアセンブリの名前。 |
オプション |
説明 |
---|---|
/h[elp] |
このツールのコマンド構文とオプションを表示します。 |
/helpassemblypath |
指定したアセンブリ内でそれぞれのインストーラによって認識される追加オプションがあれば表示します。 |
/? |
このツールのコマンド構文とオプションを表示します。 |
/? assemblypath |
指定したアセンブリ内でそれぞれのインストーラによって認識される追加オプションがあれば表示します。 |
/LogFile=[filename] |
インストールの進行状況を記録するログ ファイルの名前を指定します。既定値は assemblyname.InstallLog です。 |
/AssemblyNameassemblyName [,Version=major.minor.build.revision] [,Culture=locale] [,PublicKeyToken=publicKeyToken]] |
アセンブリの名前を指定します。アセンブリ名は、バージョン、カルチャ、およびアセンブリの公開キー トークンによって完全修飾にする必要があります。完全修飾名は、引用符で囲む必要があります。 たとえば、"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=2.0.0.0" は、完全修飾のアセンブリ名です。 |
/LogToConsole={true|false} |
true の場合は出力がコンソールに表示されます。false (既定値) の場合はコンソールへの出力が中止されます。 |
/ShowCallStack |
インストール中に例外が発生した場合、コール スタックがログ ファイルに出力されます。 |
/u[ninstall] |
アセンブリをアンインストールします。他のオプションとは異なり、コマンド行のどこに指定するかとは無関係に、/u はすべてのアセンブリに適用されます。 |
解説
.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 タイプを検索します。次に、Installer タイプの各インスタンスについて、メソッドのインストールまたはメソッドのアンインストールを実行します。Installutil.exe は、トランザクション的な方法でインストールを実行します。つまり、いずれかのアセンブリのインストールに失敗した場合には、他のすべてのアセンブリのインストールをロールバックします。アンインストールはトランザクション的な方法では実行されません。
Installutil.exe では、遅延署名されたアセンブリのインストールおよびアンインストールはできませんが、厳密な名前付きアセンブリのインストールおよびアンインストールはできます。
C++ を使用して作成した Windows サービスを Installutil.exe で配置することはできません。Installutil.exe は、C++ コンパイラで作成される埋め込みのネイティブ コードを認識できません。C++ Windows サービスを Installutil.exe で配置しようとすると、BadImageFormatException などの例外がスローされます。これを行うには、サービス コードを C++ モジュールに移行します。次に、インストーラ オブジェクトを C# または Visual Basic で記述します。
例
コマンド構文とオプションの説明を表示するコマンドを次に示します。
installutil
アセンブリ myAssembly.exe 内のインストーラ コンポーネントを実行するコマンドを次に示します。
installutil myAssembly.exe
次のコマンドは、/AssemblyName スイッチと完全修飾名を使用してアセンブリのインストーラ コンポーネントを実行します。
installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=2.0.0.0"
アセンブリ myAssembly.exe 内のアンインストーラ コンポーネントを実行するコマンドを次に示します。
installutil /u myAssembly.exe
アセンブリ myAssembly.exe 内のインストーラを実行し、進行状況に関する情報を myLog.InstallLog に書き込むように指定するコマンドを次に示します。
installutil /LogFile=myLog.InstallLog myAssembly.exe
myAssembly.exe に関するインストールの進行状況を myLog.InstallLog に書き込み、myTestAssembly.exe に関する進行状況を myTestLog.InstallLog. に書き込むコマンドを次に示します。
installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile = myTestLog.InstallLog myTestAssembly.exe