安装程序工具 (Installutil.exe)
/h[elp]
|
显示该工具的命令语法和选项。
|
/help assemblypath
|
显示指定程序集中的个别安装程序所识别的任何附加选项。
|
/?
|
显示该工具的命令语法和选项。
|
/? assemblypath
|
显示指定程序集中的个别安装程序所识别的任何附加选项。
|
/LogFile=[filename]
|
指定在其中记录安装进度的日志文件的名称。默认文件名是 assemblyname.InstallLog。
|
/AssemblyName assemblyName
[,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
|
如果在安装过程中的任何时候出现异常,则将调用堆栈打印到日志。
|
備註
可以在同一個命令行上指定多個程序集。出現在程序集名稱前面的任何選項應用於該程序集的安裝。為某個程序集指定的選項應用於後面的任何程序集,除非該選項與新程序集名稱一起指定。
Microsoft .NET Framework 應用程序由傳統的程序文件和關聯資源組成,如必須在部署應用程序時創建的消息隊列、事件日誌和性能計數器。安裝應用程序時可以使用程序集的安裝程序組件創建這些資源,而在卸載應用程序時可以使用這些組件刪除這些資源。Installutil.exe 檢測並執行這些安裝程序組件。
如果對某個程序集運行 Installutil.exe 但不指定任何選項,則 Installutil.exe 將下面三個文件放到該程序集的目錄中:
- InstallUtil.InstallLog
包含安裝進度的常規說明。
- assemblyname.InstallLog
包含安裝過程的提交階段特定的信息。有關提交階段的更多信息,請參見 Installer.Commit 方法。
- assemblyname.InstallState
包含用於卸載該程序集的數據。
Installutil.exe 使用反射檢查指定的程序集並查找將 RunInstallerAttribute 設置為 true 的所有 Installer 類型。然後此工具在 Installer 類型的每個實例上執行 Install 方法或 Uninstall 方法。Installutil.exe 以事務性方式執行安裝;如果有一個程序集未能安裝,則 Installutil.exe 回滾其他所有程序集的安裝。卸載不是事務性的。
請註意,不能使用 Installutil.exe 來部署用 C++ 的托管擴展創建的 Windows 服務。Installutil.exe 無法識別由 C++ 編譯器產生的嵌入的本機代碼。如果試圖使用 Installutil.exe 來部署托管擴展 Windows 服務,則會引發異常(如 BadImageFormatException)。要處理這種情況,請將服務代碼移動到 C++ 的托管擴展模塊。然後,用 C# 或 Visual Basic 來編寫安裝程序對象。
示例
下列命令顯示命令語法和選項的說明。
installutil
下面的命令執行 myAssembly.exe
程序集中的安裝程序組件。
installutil myAssembly.exe
下面的命令執行 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.