安裝程式工具 (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]]

指定組件的名稱。您必須利用組件的版本、文化特性 (Culture) 和公開金鑰語彙基元 (Token) 以完整限定組件名稱。必須以引號括住完整名稱。

例如,"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=2.0.0.0" 就是完整的組件名稱。

/LogToConsole={true|false}

如果為 true,顯示輸出至主控台 (Console)。如果為 false (預設值),隱藏至主控台的輸出。

/ShowCallStack

如果在安裝期間例外狀況 (Exception) 發生於任何時間點,將列印呼叫堆疊到記錄檔。

/u[ninstall]

解除安裝組件。不同於其他選項,/u 會套用到所有組件 (與它出現在命令列上的位置無關)。

備註

從 .NET Framework 2.0 版開始,32 位元版本的 Common Language Runtime (CLR) 會維持僅隨附於 32 位元版本的安裝程式工具中的狀態,但是 64 位元版本的 CLR 則會隨附於 32 位元和 64 位元版本的安裝程式工具中。當您使用 64 位元的 CLR 時,請使用 32 位元的安裝程式工具來安裝 32 位元的組件,並使用 64 位元的安裝程式工具來安裝 64 位元和 Microsoft Intermediate Language 的組件。否則,這兩種版本的安裝程式工具會有相同的行為方式。

Microsoft .NET Framework 應用程式由傳統的程式檔和關聯的資源組成,例如訊息佇列、事件記錄檔,和部署應用程式時所必須建立的效能計數器。當安裝應用程式時,您可以使用組件的安裝元件來建立這些資源,並在解除安裝應用程式時移除它們。Installutil.exe 會偵測並執行這些安裝程式元件。

您可以在相同命令列上指定多個組件。任何發生在組件名稱之前的選項會套用到該組件的安裝。除非以新的組件名稱指定選項,否則為一個組件指定的選項會套用到任何後續的組件。

如果對組件執行 Installutil.exe 而沒有指定任何選項的話,它會將下列三個檔案放置到組件的目錄中:

  • InstallUtil.InstallLog

    包含安裝進度的一般描述。

  • assemblyname.InstallLog

    包含安裝程序認可階段的特定資訊。如需認可階段的詳細資訊,請參閱 Installer.Commit Method

  • assemblyname.InstallState

    包含用來解除安裝組件的資料。

Installutil.exe 使用反映來檢查指定的組件,並以 RunInstallerAttribute 設為 true 的方式來尋找所有的 Installer 型別。然後工具會在 Installer 型別的每個執行個體 (Instance) 上執行 Install 方法Uninstall 方法。Installutil.exe 以可異動方式執行安裝;如果其中一個組件安裝失敗,它會復原所有其他組件的安裝。解除安裝不是可異動的。

Installutil.exe 無法安裝或解除安裝延遲簽署的組件,但是可以安裝或解除安裝強式命名的組件。

請注意,您不能使用 Installutil.exe 部署使用 C++ 建立的 Windows 服務。Installutil.exe 無法辨識由 C++ 編譯器產生的內嵌機器碼。如果您嘗試使用 Installutil.exe 部署 C++ Windows 服務,就會擲回類似 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

請參閱

參考

.NET Framework 工具

System.Configuration.Install

SDK 命令提示字元