【问题标题】:Visual Studio Installer Projects Extension - Install a ServiceVisual Studio 安装程序项目扩展 - 安装服务
【发布时间】:2014-12-09 07:12:22
【问题描述】:

我正在使用 Visual Studio 安装程序项目扩展来为我的项目创建一个 .msi。

安装程序在大多数情况下似乎工作正常,但安装后它不会启动我的服务,我必须手动运行 MyService.exe。

有没有办法做到这一点?或者我可以在某处注入一些自定义安装程序代码吗?

【问题讨论】:

  • 您的意思是 MSI 安装成功,但服务并不总是启动?或者有时它无法启动?
  • 所以扩展程序创建了所有安装文件夹并复制了所需的文件,这很棒。但是,它不会注册我的服务(未在 services.msc 下列出)。我现在已经创建了一个服务安装程序类,但不确定我是否可以将它与扩展一起使用
  • 这是正确的方法。您应该创建一个服务安装程序类并将该类所在的项目作为主要输出添加到安装程序项目中,然后将主要输出添加到自定义操作。(安装/提交/卸载)

标签: c# service windows-installer


【解决方案1】:

Viusal Studio Installer 项目不公开 Windows Installer 的基础 ServiceInstall / ServiceControl 表。这迫使开发人员使用自定义操作重新发明轮子,从而导致安装程序脆弱。

Windows Installer XML 可以创建正确实现 ServiceInstall / Service Control 的合并模块。然后,您可以将该合并模块引用到您的 Visual Studio 安装程序中,以打破最佳实践来完成任务。可以在此处找到对此的讨论:

Augmenting InstallShield using Windows Installer XML - Windows Services

Redemption of Visual Studio Deployment Projects

IsWiX Tutorials - 如何使用 WiX / IsWiX 创作 Windows 服务

【讨论】:

【解决方案2】:

微软在这篇 MSDN 文章中描述了创建服务安装程序的过程:How to: Add Installers to Your Service Application

【讨论】:

  • 好的,谢谢。那么当我构建整个项目时会构建一个安装程序吗?
【解决方案3】:

看看这是否有帮助:

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

向下滚动到使用 Visual Studio 安装服务。

这是一个将 ServiceInstall/ServiceControl 功能添加到 VS 设置的工具。我已经有一段时间没有更新它了,但是所有的来源都在那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-22
    • 2012-05-19
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2012-04-11
    相关资源
    最近更新 更多