【问题标题】:Run a service after installation using Orca使用 Orca 安装后运行服务
【发布时间】:2015-01-07 13:10:15
【问题描述】:

如何在使用 Orca 完成 msi 安装后运行特定服务?我知道我需要设置自定义操作,但我完全不知道该怎么做。

【问题讨论】:

    标签: visual-studio-2010 windows-installer orca


    【解决方案1】:

    您根本不需要自定义操作,您需要 ServiceInstallServiceControl 表中的行。 FWIW,很少有人真正使用 ORCA 来编写 MSI。它更像是一种检查 MSI 并偶尔创建转换的工具。大多数设置开发人员使用其他工具(例如 Windows Installer XML)来编写内置到 MSI 中的源代码。在这种情况下,您使用ServiceInstallServiceControl 元素告诉编译器将行编写到MSI 中的这些表中。

    我维护了一个名为 IsWiX 的 WiX 开源项目。 IsWiX 由充当安装程序脚手架的 Visual Studio 项目模板组成。它还提供了用于创作大部分安装程序逻辑的图形 UI,包括对目录、文件(组件)和服务的支持。 WiX 支持 MSBuild / TFS,使 MSI 的自动化 CI 构建变得轻而易举。

    我在 youtube 上有一个视频:Building and Deploying a Windows Service using IsWiX,它展示了使用 Visual Studio Online 进行源代码/构建自动化的过程。这有点过时,因为在视频中我展示了手动创作 ServiceInstall / ServiceControl 元素,但在最新版本的 IsWiX 中,可以使用新的服务设计器以图形方式完成。

    【讨论】:

    • 谢谢你,但我需要 Orca。不过,我不需要自定义操作可以推动我前进。
    【解决方案2】:

    如果您使用的是 VS 安装项目,那么答案是您已经使用安装程序类自定义操作安装服务,因此您覆盖 Install 方法,调用 base.Install() 然后添加您的代码实际启动服务。

    正如 Christopher 所提到的,尽管 Windows Installer 提供了支持,但这是 VS 设置项目的方式。

    如果您想使用 Visual Studio 设置并使用标准方式来控制服务,这可能会有所帮助:

    http://www.installsite.org/pages/en/msi/tips.htm

    并向下滚动到在 Visual Studio 中安装服务。

    【讨论】:

    • 谢谢,但由于任何原因,在更新期间来自 VS 的事件对我不起作用。
    • 不确定这意味着什么,但人们通常会创建自定义操作代码以在 VS 设置中启动他们的服务,因此,如果您尝试过这样做,那么它可能只是您的代码中的某些内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2012-03-24
    • 1970-01-01
    • 2020-10-20
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多