c# - VS 2008 Windows 服务安装程序不工作

标签 c# visual-studio-2008 windows-services

我刚刚创建了一个新的 Windows 服务,但安装程序出现问题。

我通过本教程创建了安装程序:http://www.sarin.mobi/2008/08/c-windows-service-visual-studio-2008/

无论如何,当我运行 VS 生成的 .msi 时,这个项目的可执行文件安装在我期望的位置。但是,该服务不会出现在 Windows 服务中。

当我使用 VS 命令行工具和 installutil 时,一切正常。

我过去创建过服务,所以我将 ProjectInstaller 文件和安装程序配置与过去的项目进行了比较,没有发现明显差异。

有什么建议吗?

最佳答案

要安装服务,您需要将 ServiceInstallerServiceProcessInstaller 添加到服务项目,然后将自定义操作添加到安装程序以运行它们。我很确定这是您缺少的自定义操作部分。

  1. 创建一个新的 Windows 服务项目
  2. 双击 .svc 文件打开设计器。
  3. 右键单击设计图面并选择“创建安装程序”。这将创建一个。
  4. 设置属性...关键 Prop 是:
    • ServiceInstaller:名称和启动类型
    • ServiceProcessInstaller:要在其下运行的帐户。
  5. 创建您的安装项目
  6. 右键单击设置项目并选择“添加”->“项目输出”
  7. 从下拉列表中选择服务项目并选择“主要输出”
  8. 右键单击安装项目并选择“查看”->“自定义操作”
  9. 右键单击出现的自定义操作树并选择添加自定义操作
  10. 选择“应用程序文件夹”
  11. 选择“服务的主要输出”
  12. 点击“确定”。将添加四个操作,每个安装操作下一个

现在,当您构建并执行安装程序时,您在第 3 步中创建的安装程序将被执行,添加您的服务并设置所有属性。

HTH,
詹姆斯

关于c# - VS 2008 Windows 服务安装程序不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148896/

相关文章:

c# - Asp.Net 刷新页面的静态方法

c# - C# 中非常奇怪的字符串唯一问题

C#泛型问题

c# - 可以用 C# 中的用户输入计算年龄,但不知道为什么会这样

c# - 包装函数的返回值是个好主意吗?

c++ - 从 c/c++ 应用程序确定 32 位操作系统或 64 位操作系统

wpf - 如何在没有表情混合的情况下制作WPF动画

windows - 使用 rundll32.exe 作为 Windows 服务运行 dll

c++ - 单个可执行文件和不同的服务

c# - ASP.NET Core 托管在 Windows 服务中 - 未提供静态文件(即/wwwroot 的内容)