转载 https://www.cnblogs.com/yuanli/p/3234027.html
安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源。此工具与 System.Configuration.Install 命名空间中的类一起工作。
安转的位置和路径在:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
卸载的位置和路径在:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
安装程序工具 (Installutil.exe) 安装方法和参数:
安装程序工具 (Installutil.exe) 安装方法和参数:
installutil [/uninstall][option […]]assemblyname ][option […]]assemblyname
备注
可以在同一个命令行上指定多个程序集。出现在程序集名称前面的任何选项应用于该程序集的安裝。为某个程序集指定的选项应用于后面的任何程序集,除非该选项与新程序集名称一起指定。
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.