2

首先要说的是,我通常使用InstallUtil命令在Visual Studio 命令提示符 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 MyServiceName

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

这有可能吗?

4

1 回答 1

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 & Exit(不要忘记将路径更改为您的)

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

于 2013-09-06T11:14:01.280 回答