Installutil.exe (インストーラー ツール)Installutil.exe (Installer Tool)

インストーラー ツールは、指定したアセンブリ内のインストーラー コンポーネントを実行することによってサーバー リソースのインストールとアンインストールを実行できるコマンド ライン ユーティリティです。The Installer tool is a command-line utility that allows you to install and uninstall server resources by executing the installer components in specified assemblies. このツールは、System.Configuration.Install 名前空間のクラスと組み合わせることによって動作します。This tool works in conjunction with classes in the System.Configuration.Install namespace.

このツールは、Visual Studio と共に自動的にインストールされます。This tool is automatically installed with Visual Studio. このツールを実行するには、Visual Studio 用開発者コマンド プロンプト (または Windows 7 の Visual Studio コマンド プロンプト) を使用します。To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). 詳細については、「Visual Studio 用開発者コマンド プロンプト」を参照してください。For more information, see Command Prompts.

コマンド プロンプトに次のように入力します。At the command prompt, type the following:


installutil [/u[ninstall]] [options] assembly [[options] assembly] ...


引数Argument 説明Description
assembly インストーラー コンポーネントを実行するアセンブリのファイル名。The file name of the assembly in which to execute the installer components. /AssemblyName オプションを使用してアセンブリの厳密な名前を指定する場合は、このパラメーターを省略します。Omit this parameter if you want to specify the assembly's strong name by using the /AssemblyName option.


オプションOption 説明Description

- または --or-

このツールのコマンド構文とオプションを表示します。Displays command syntax and options for the tool.
/help assembly/help assembly

- または --or-

/? assembly/? assembly
InstallUtil.exe のコマンド構文とオプションと共に、指定したアセンブリ内でそれぞれのインストーラーによって認識される追加オプションを表示します。Displays additional options recognized by individual installers within the specified assembly, along with command syntax and options for InstallUtil.exe. このオプションを指定すると、各インストーラー コンポーネントの Installer.HelpText プロパティによって返されるテキストが InstallUtil.exe のヘルプ テキストに追加されます。This option adds the text returned by each installer component's Installer.HelpText property to the help text of InstallUtil.exe.
/AssemblyName "assemblyName/AssemblyName "assemblyName



グローバル アセンブリ キャッシュに登録されている必要があるアセンブリの厳密な名前を指定します。Specifies the strong name of an assembly, which must be registered in the global assembly cache. アセンブリ名は、バージョン、カルチャ、およびアセンブリの公開キー トークンによって完全修飾にする必要があります。The assembly name must be fully qualified with the version, culture, and public key token of the assembly. 完全修飾名は、引用符で囲む必要があります。The fully qualified name must be surrounded by quotes.

たとえば、"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=" は、完全修飾のアセンブリ名です。For example, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=" is a fully qualified assembly name.
/InstallStateDir=[ directoryName ]/InstallStateDir=[ directoryName ] アセンブリをアンインストールするために使用されるデータを格納する .InstallState ファイルのディレクトリを指定します。Specifies the directory of the .InstallState file that contains the data used to uninstall the assembly. 既定のディレクトリは、アセンブリを格納しているディレクトリです。The default is the directory that contains the assembly.
/LogFile=[filename]/LogFile=[filename] インストールの進行状況を記録するログ ファイルの名前を指定します。Specifies the name of the log file where installation progress is recorded. 既定では、/LogFile オプションを省略した場合は、assemblyname.InstallLog という名前のログ ファイルが作成されます。By default, if the /LogFile option is omitted, a log file named assemblyname.InstallLog is created. filename を省略した場合、ログ ファイルは生成されません。If filename is omitted, no log file is generated.
/LogToConsole={true|false}/LogToConsole={true|false} true の場合は出力がコンソールに表示されます。If true, displays output to the console. false (既定値) の場合はコンソールへの出力が中止されます。If false (the default), suppresses output to the console.
/ShowCallStack インストール中に例外が発生した場合、コール スタックがログ ファイルに出力されます。Outputs the call stack to the log file if an exception occurs at any point during installation.
/u[ninstall]/u[ninstall] 指定されたアセンブリをアンインストールします。Uninstalls the specified assemblies. 他のオプションとは異なり、コマンド ラインのどこにオプションを指定するかとは無関係に、/u はすべてのアセンブリに適用されます。Unlike the other options, /u applies to all assemblies regardless of where the option appears on the command line.

その他のインストーラー オプションAdditional Installer Options

アセンブリ内で使用されるそれぞれのインストーラーでは、「オプション」で示したオプション以外のオプションも認識される場合があります。Individual installers used within an assembly may recognize options in addition to those listed in the Options section. これらのオプションを確認するには、コマンド ラインで /? オプションまたは /help オプションと共にアセンブリのパスを指定して InstallUtil.exe を実行します。To learn about these options, run InstallUtil.exe with the paths of the assemblies on the command line along with the /? or /help option. これらのオプションを指定するには、InstallUtil.exe で認識されるオプションと共にそれらのオプションをコマンド ラインに含めます。To specify these options, you include them on the command line along with the options recognized by InstallUtil.exe.


個々のインストーラー コンポーネントでサポートされるオプションのヘルプ テキストは、Installer.HelpText プロパティによって返されます。Help text on the options supported by individual installer components is returned by the Installer.HelpText property. コマンド ラインで入力された個々のオプションには、Installer.Context プロパティからプログラムでアクセスできます。The individual options that have been entered on the command line are accessible programmatically from the Installer.Context property.

オプションとコマンド ライン パラメーターはすべてインストール ログ ファイルに書き込まれます。All options and command-line parameters are written to the installation log file. ただし、一部のインストーラー コンポーネントで認識される /Password パラメーターを使用する場合、パスワード情報は 8 つのアスタリスク (*) に置き換えられ、ログ ファイルに表示されません。However, if you use the /Password parameter, which is recognized by some installer components, the password information will be replaced by eight asterisks (*) and will not appear in the log file.


インストーラーに渡されるパラメーターには機密情報または個人を特定できる情報が含まれる場合があり、既定ではプレーンテキスト ログ ファイルに書き込まれます。In some cases, parameters passed to the installer may include sensitive or personally identifiable information, which, by default, is written to a plain text log file. この動作を回避するには、コマンド ラインで Installutil.exe の後に (filename 引数を指定せずに) /LogFile= を指定して、ログ ファイルが生成されないようにします。To prevent this behavior, you can suppress the log file by specifying /LogFile= (with no filename argument) after Installutil.exe on the command line.


.NET Framework アプリケーションは、従来のプログラム ファイルと関連リソースで構成されます。関連リソースには、メッセージ キュー、イベント ログ、パフォーマンス カウンターなどがあり、アプリケーションを配置するときにこれらのリソースを作成する必要があります。.NET Framework applications consist of traditional program files and associated resources, such as message queues, event logs, and performance counters that must be created when the application is deployed. アセンブリのインストーラー コンポーネントを使用すると、アプリケーションのインストール時にこれらのリソースを作成したり、アプリケーションのアンインストール時に削除したりできます。You can use an assembly's installer components to create these resources when your application is installed and to remove them when your application is uninstalled. Installutil.exe は、これらのインストーラー コンポーネントを検出して実行します。Installutil.exe detects and executes these installer components.

同じコマンド行に複数のアセンブリを指定できます。You can specify multiple assemblies on the same command line. アセンブリ名の前に指定したオプションは、そのアセンブリのインストールに適用されます。Any option that occurs before an assembly name applies to that assembly's installation. /u/AssemblyName 以外のオプションは、累積されますがオーバーライドできます。Except for /u and /AssemblyName, options are cumulative but overridable. つまり、あるアセンブリに指定したオプションは、そのオプションを新しい値と共に指定しない限り、後続のすべてのアセンブリに適用されます。That is, options specified for one assembly apply to all subsequent assemblies unless the option is specified with a new value.

オプションを指定せずにアセンブリに対して Installutil.exe を実行すると、次の 3 つのファイルがアセンブリのディレクトリ内に作成されます。If you run Installutil.exe against an assembly without specifying any options, it places the following three files into the assembly's directory:

  • InstallUtil.InstallLog - インストールの進行状況に関する一般的な説明が含まれます。InstallUtil.InstallLog - Contains a general description of the installation progress.

  • assemblyname.InstallLog - インストール プロセスのコミット フェーズに固有の情報が含まれます。assemblyname.InstallLog - Contains information specific to the commit phase of the installation process. コミット フェーズの詳細については、「Commit メソッド」を参照してください。For more information about the commit phase, see the Commit method.

  • assemblyname.InstallState - アセンブリをアンインストールするために使用されるデータが含まれます。assemblyname.InstallState - Contains data used to uninstall the assembly.

Installutil.exe は、リフレクションを使用して指定されたアセンブリを調査し、Installer 属性が System.ComponentModel.RunInstallerAttribute に設定されたすべての true タイプを検索します。Installutil.exe uses reflection to inspect the specified assemblies and to find all Installer types that have the System.ComponentModel.RunInstallerAttribute attribute set to true. 次に、Installer.Install タイプの各インスタンスについて、Installer.Uninstall メソッドまたは Installer メソッドを実行します。The tool then executes either the Installer.Install or the Installer.Uninstall method on each instance of the Installer type. Installutil.exe は、トランザクション的な方法でインストールを実行します。つまり、いずれかのアセンブリのインストールに失敗した場合には、他のすべてのアセンブリのインストールをロールバックします。Installutil.exe performs installation in a transactional manner; that is, if one of the assemblies fails to install, it rolls back the installations of all other assemblies. アンインストールはトランザクション的な方法では実行されません。Uninstall is not transactional.

Installutil.exe では、遅延署名されたアセンブリのインストールおよびアンインストールはできませんが、厳密な名前付きアセンブリのインストールおよびアンインストールはできます。Installutil.exe cannot install or uninstall delay-signed assemblies, but it can install or uninstall strong-named assemblies.

.NET Framework Version 2.0 から、32 ビット バージョンの共通言語ランタイム (CLR) は 32 ビット バージョンのインストーラー ツールにのみ付属し、64 ビット バージョンの CLR は 32 ビットおよび 64 ビットの両方のバージョンのインストーラー ツールに付属するようになりました。Starting with the .NET Framework version 2.0, the 32-bit version of the common language runtime (CLR) ships with only the 32-bit version of the Installer tool, but the 64-bit version of the CLR ships with both 32-bit and 64-bit versions of the Installer tool. 64 ビットの CLR を使用しているときは、32 ビットのアセンブリをインストールするには 32 ビットのインストーラーを使用し、64 ビットおよび Microsoft Intermediate Language (MSIL) のアセンブリをインストールするには 64 ビットのインストーラーを使用します。When using the 64-bit CLR, use the 32-bit Installer tool to install 32-bit assemblies, and the 64-bit Installer tool to install 64-bit and Microsoft intermediate language (MSIL) assemblies. どちらのバージョンのインストーラー ツールも同様に動作します。Both versions of the Installer tool behave the same.

C++ を使用して作成した Windows サービスを Installutil.exe で配置することはできません。Installutil.exe は、C++ コンパイラで作成される埋め込みのネイティブ コードを認識できません。You cannot use Installutil.exe to deploy a Windows service that was created by using C++, because Installutil.exe cannot recognize the embedded native code that is produced by the C++ compiler. C++ Windows サービスを Installutil.exe で配置しようとすると、BadImageFormatException などの例外がスローされます。If you try to deploy a C++ Windows service with Installutil.exe, an exception such as BadImageFormatException will be thrown. これを行うには、サービス コードを C++ モジュールに移行し、インストーラー オブジェクトを C# または Visual Basic で記述します。To work with this scenario, move the service code to a C++ module, and then write the installer object in C# or Visual Basic.


InstallUtil.exe のコマンド構文とオプションの説明を表示するコマンドを次に示します。The following command displays a description of the command syntax and options for InstallUtil.exe.

installutil /?

InstallUtil.exe のコマンド構文とオプションの説明を表示するコマンドを次に示します。The following command displays a description of the command syntax and options for InstallUtil.exe. インストーラーの Installer.HelpText プロパティにヘルプ テキストが割り当てられている場合は、myAssembly.exe のインストーラー コンポーネントでサポートされるオプションの説明とリストも表示されます。It also displays a description and list of options supported by the installer components in myAssembly.exe if help text has been assigned to the installer's Installer.HelpText property.

installutil /? myAssembly.exe

アセンブリ myAssembly.exe 内のインストーラー コンポーネントを実行するコマンドを次に示します。The following command executes the installer components in the assembly myAssembly.exe.

installutil myAssembly.exe

/AssemblyName スイッチと完全修飾名を使用してアセンブリのインストーラー コンポーネントを実行するコマンドを次に示します。The following command executes the installer components in an assembly by using the /AssemblyName switch and a fully qualified name.

installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version="

ファイル名で指定されたアセンブリと厳密な名前で指定されたアセンブリのインストーラー コンポーネントを実行するコマンドを次に示します。The following command executes the installer components in an assembly specified by file name and in an assembly specified by strong name. /AssemblyName オプションはオーバーライドできないので、コマンド ラインではファイル名で指定するすべてのアセンブリを厳密な名前で指定するアセンブリよりも前に記述する必要があります。Note that all assemblies specified by file name must precede assemblies specified by strong name on the command line, because the /AssemblyName option cannot be overridden.

installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version="

アセンブリ myAssembly.exe 内のアンインストーラー コンポーネントを実行するコマンドを次に示します。The following command executes the uninstaller components in the assembly myAssembly.exe.

installutil /u myAssembly.exe

myAssembly1.exe アセンブリと myAssembly2.exe アセンブリ内のアンインストーラー コンポーネントを実行するコマンドを次に示します。The following command executes the uninstaller components in the assemblies myAssembly1.exe and myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

コマンド ラインでの /u オプションの位置は重要ではないので、これは次のコマンドと同等です。Because the position of the /u option on the command line is not important, this is equivalent to the following command.

installutil /u myAssembly1.exe myAssembly2.exe

アセンブリ myAssembly.exe 内のインストーラーを実行し、進行状況に関する情報を myLog.InstallLog に書き込むように指定するコマンドを次に示します。The following command executes the installers in the assembly myAssembly.exe and specifies that progress information will be written to myLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe

アセンブリ myAssembly.exe 内のインストーラーを実行し、進行状況に関する情報を myLog.InstallLog に書き込むように指定し、インストーラーのカスタム オプション /reg を使用してシステム レジストリを更新するように指定するコマンドを次に示します。The following command executes the installers in the assembly myAssembly.exe, specifies that progress information should be written to myLog.InstallLog, and uses the installers' custom /reg option to specify that updates should be made to the system registry.

installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe

アセンブリ myAssembly.exe 内のインストーラーを実行し、インストーラーのカスタム オプション /email を使用してユーザーの電子メール アドレスを指定し、ログ ファイルに出力しないようにするコマンドを次に示します。The following command executes the installers in the assembly myAssembly.exe, uses the installer's custom /email option to specify the user's email address, and suppresses output to the log file.

installutil /LogFile= / myAssembly.exe

myAssembly.exe に関するインストールの進行状況を myLog.InstallLog に書き込み、myTestAssembly.exe に関する進行状況を myTestLog.InstallLog に書き込むコマンドを次に示します。The following command writes the installation progress for myAssembly.exe to myLog.InstallLog and writes the progress for myTestAssembly.exe to myTestLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe

関連項目See also