运行Windows服务应用程序而不安装它

Phi*_*ppe 11 .net c# windows-services visual-studio

我正在编写一个Windows服务,只需点击F5我收到错误消息,我必须使用installutil.exe它然后运行它.在实践中,这意味着每次我更改一行代码:

  1. 切换到开发人员命令提示符
  2. 删除旧版本
  3. 安装新版本
  4. 开始服务

这非常不方便.有没有更好的方法呢?

May*_*hak 13

我认为最好的方法是使用Debug指令.以下是相同的示例.

#if(!DEBUG)
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[] 
    { 
         // Calling MyService Constructor 
            new MyService() 
    };
     ServiceBase.Run(ServicesToRun);
#else
  MyService serviceCall = new MyService();
  serviceCall.YourMethodContainingLogic();
#endif
Run Code Online (Sandbox Code Playgroud)

F5 并设置Breakpoint你的YourMethodContainingLogic方法来调试.


Dam*_*ver 8

我通常将大部分服务实现放入类库中,然后创建两个"前端"来运行它 - 一个是服务项目,另一个是控制台或Windows窗体应用程序.我使用控制台/表单应用程序进行调试.

但是,您应该了解调试体验与作为正版服务运行时的环境差异 - 例如,您可能意外地最终依赖于与交互式用户的会话中运行,或者(对于winforms)消息泵在跑.