如何使用Orca在msi安装结束后运行特定服务?我知道我需要设置自定义操作,但我完全无法知道如何操作。
答案 0 :(得分:0)
您根本不需要自定义操作,您需要ServiceInstall和ServiceControl表中的行。 FWIW,很少有人真正使用ORCA来创作MSI。它更像是一种检查MSI并偶尔创建转换的工具。大多数设置开发人员使用其他工具(如Windows Installer XML)来编写内置到MSI中的源代码。在这种情况下,您使用ServiceInstall和ServiceControl元素告诉编译器将行创作到MSI中的那些表中。
我为WiX维护了一个名为IsWiX的开源项目。 IsWiX由Visual Studio项目模板组成,它们充当安装程序的脚手架。它还提供了用于创作大多数安装程序逻辑的图形UI,包括对目录,文件(组件)和服务的支持。 WiX支持MSBuild / TFS,使MSI的自动CI构建变得轻而易举。
我在youtube上有一个视频:Building and Deploying a Windows Service using IsWiX显示使用Visual Studio Online进行源/构建自动化的过程。它有点过时了,就像在我展示的手工编写ServiceInstall / ServiceControl元素的视频中一样,但在最新版本的IsWiX中,可以使用新的服务设计师以图形方式完成。
答案 1 :(得分:0)
如果您正在使用VS安装项目,那么答案就是您已经使用安装程序类自定义操作安装该服务,因此您重写Install方法,调用base.Install()然后添加您的代码实际启动服务。
这是VS安装项目的方式,尽管Windows Installer提供了支持,正如Christopher所提到的那样。
如果您想使用Visual Studio设置并使用标准方法来控制服务,这可能会有所帮助:
http://www.installsite.org/pages/en/msi/tips.htm
并向下滚动到Visual Studio中的安装服务。