通过开始调试 (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 服务的主要内容,如果未能解决你的问题,请参考以下文章