通过开始调试 (F5) 从 Visual Studio 2010 使用 InstallUtil 安装 Windows 服务

Posted

技术标签:

【中文标题】通过开始调试 (F5) 从 Visual Studio 2010 使用 InstallUtil 安装 Windows 服务【英文标题】:Installing windows service with InstallUtil from Visual Studio 2010 by Start Debugging (F5) 【发布时间】:2013-09-09 12:30:51 【问题描述】:

首先要说的是,我通常使用 InstallUtil 命令在 visual studio command prompt 2010 中安装我的 windows 服务。

是否可以通过开始调试 (F5) 直接从 Visual Studio 安装我的 Windows 服务?

我尝试在我的 Windows 服务项目属性中的“调试”选项卡下启动 cmd.exe:

启动外部程序: C:\Windows\System32\cmd.exe

命令行参数: /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86(使用此 InstallUtil在 cmd 中作为命令启用)

使用该 cmd 将打开。我希望当 cmd 运行时它会自动执行:

InstallUtil 我的服务名称

(当 cmd 启动时,它已经在 myservice.exe 所在的 Debug 文件夹中)

这有可能吗?

【问题讨论】:

我设法做到了。 命令行参数需要添加:& InstallUtil HostingWindowsService.exe,它将在第一部分之后(&之前)执行,因此“说" cmd 语言。现在我已经自动安装了该服务,但要卸载它,我仍然需要在该 cmd 窗口中键入 sc delete myServiceName 我有 8 小时无法回答我的问题,所以我暂时写在这里:启动外部程序: C:\Windows\System32\cmd. exe(您的 cmd.exe 路径)命令行参数 /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 & sc delete MyServiceName & InstallUtil MyServiceFileName.exe & Exit(别忘了改成你的路径) MyServiceName 是 ProjectInstaller.cs 中 serviceInstaller 的 ServiceName 属性的值(由 VS 生成)MyServiceFileName 是您的已编译 *.exe 文件的名称调试文件夹。可能与项目名称相同。 【参考方案1】:

这里是完整的解决方案。

什么

在开始调试 (F5) 时从 Visual Studio 自动安装 windows 服务,而不向项目添加任何安装代码(项目安装程序除外,您需要注册 windows 服务)。

Visual Studio 2010 项目属性

右键单击您的服务项目并选择属性。转到调试部分。输入这个:

启动外部程序: C:\Windows\System32\cmd.exe(你的 cmd.exe 路径)

命令行参数: /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 & sc delete MyServiceName & InstallUtil MyServiceFileName.exe & 退出(别忘了改成你的路径)

MyServiceName 是 ProjectInstaller.cs 中 serviceInstaller 的 ServiceName 属性的值(由 VS 生成)

MyServiceFileName 是 Debug 文件夹中已编译的 *.exe 文件的名称。可能与项目名称相同。

那做了什么?

我们启动了使用 Visual Studio 命令提示符功能的命令提示符(我们需要 InstallUtil),删除旧的服务实例(如果存在),并安装新实例(如果 StartType 为 Automatic,则启动它)

如果您需要...

调试

Visual Studio 2010。转到调试/附加到进程。标记显示所有用户的进程和显示所有会话的进程,以便能够看到您的 Windows 服务。该进程的名称将是您的 MyServiceFileName。每次要调试进程时,都必须手动附加进程。当然,必须启动服务才能可见和可调试。

为您的服务创建安装程序 (MSDN)

要查看如何为您的 Windows 服务创建安装程序,请访问此链接:

http://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.100%29.aspx

【讨论】:

以上是关于通过开始调试 (F5) 从 Visual Studio 2010 使用 InstallUtil 安装 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 快捷键

visual studio 2010在运行调试时,运行窗口自动退出

visual studio 2012如何调试和运行程序?

Visual Studio调试效率技巧

visual studio 怎么编译

Visual Studio 快捷键