有些时候,我们需要开发windows service程序,需要进行调试,按以往的调试方法,需要先安装然后加入托管线程进行调试,而且改变一点代码就需要卸载重新安装调试,非常麻烦。
方法如下:
在services1.cs的main方法中添加如下代码:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main(string[] args)
{
try
{
if (args.Length > 0
&& string.Equals(args[0], "debug", StringComparison.OrdinalIgnoreCase))
{
Service1 srv = new Service1();
srv.DebugStart();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
return;
}
//System.ServiceProcess.ServiceBase[] ServicesToRun;
//ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
//System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
catch (Exception ex)
{
}
}
/// <summary>
/// 用于windows service调试
/// </summary>
protected void DebugStart()
{
OnStart(null);
}
再进入项目属性,添加命令行参数,设置如下:
这样就可以在代码段里下断点进行调试了!