向GUI-Windows应用程序项目添加windows服务



我有一个基于GUI的windows应用程序,这是一个。exe应用程序(TestServer.exe)应用程序。现在我需要在这个项目解决方案中添加一个windows服务。因此,解决方案将构建两个可执行文件。第一个是它目前正在使用UserApplication构建的;MyTestServer.exe第二个是新的Windows服务;MyTestservice.exe。
两者都将共享MyTestServerLibrary和我们的第三方dll。

如何在c# - Visual studio 2010中做到这一点?

正如@nvoigt所说,您只需在解决方案中添加另一个项目。如果在解决方案资源管理器窗口中右键单击解决方案,选择Add|New Project…菜单选项。在结果对话框中,选择Windows Service项目类型,给它一个名称,然后按OK。注意,这个步骤假设你有一个Visual Studio 2010的付费版本。我记得Windows Service项目类型没有随Express版本一起交付。

从这里,您只需构建您的Windows服务项目,就像您创建任何其他项目一样。如果你以前没做过这个,我这里有一组说明教你怎么做。这些说明针对的是Visual Studio 2008(我真的需要更新它…),但它们实际上与Visual Studio 2010相同。

此时,当您构建项目时,您将获得TestServer.exe,作为解决方案一部分的任何其他c#程序集,以及新添加的Windows服务可执行文件。默认情况下,直接从Visual Studio调试器运行Windows服务将无法工作,原因有两个。首先,您的解决方案可能将TestServer.exe标记为启动项目,这仅仅意味着当您按F5开始调试时,TestServer.exe将运行。但是即使你将启动项目改为新的Windows服务,它仍然不能工作,因为服务不像普通的Windows应用程序那样启动。要解决这个问题,您可以查看这里的说明,了解如何让您的Windows服务在"交互"模式下运行,这将允许您像调试任何其他应用程序一样调试它。不过,就我的目的而言,我更喜欢在我的Windows服务实际作为Windows服务运行时调试它。要做到这一点,只需在Windows服务的构造函数中调用System.Diagnostics.Debugger.Launch()。如果您是系统的管理员,这将使您有机会在从Services控制台启动服务时跳转到调试会话。

这直接指向安装服务的要点。要真正运行Windows服务,它必须安装在系统上。对于基于。net的Windows服务,您可以使用微软提供的InstallUtil.exe来完成此操作。如果从"开始"菜单打开Visual Studio命令提示符,它在目录路径中可用。我更喜欢Marc Gravell建议的解决方案,让Windows服务自己安装/卸载。这里有一组操作说明

这应该让你开始。SO上有很多关于Windows服务的好答案,所以如果你被困住了,一定要在这个网站上搜索一下。HTH .

最新更新