2部分Windows应用程序:“Windows服务”+ GUI来configuration它

我正在研究一个由两部分组成的Windows应用程序:
一个代理,在后台运行。
窗口的主要应用程序,用于启动/停止代理程序并对其进行configuration。

我所理解的是我应该为代理使用“windows服务”。
但我不知道这应该如何打包? (我可以在同一个.exe中有这两个部分?)
以及代理和主应用程序如何进行通信(我应该使用共享文件吗?我的代理是否可以使用私人文件夹?)

我基本上在寻找一些架构build议

Solutions Collecting From Web of "2部分Windows应用程序:“Windows服务”+ GUI来configuration它"

您将需要分开.exe文件,一个为服务和一个为Windows应用程序。 你可以在Visual Studio中打包这两个独立的MSI,这样做的好处是,如果你需要移动服务(无论出于什么原因),那么你也不会打包Windows应用程序并将其留在你安装服务的地方。

有不同的方式可以让他们沟通而不会大量复杂。 您可以从文本文件中读取,正如您所建议的那样,但这可能会导致锁定问题。 当我不得不做类似的事情时,我在SQL创建了一个简单的数据库(或者你希望的任何品牌的数据库),然后让Windows应用程序向表中插入/更新配置选项,然后服务读取表来获取它的设置。

将代理作为服务运行可能是最好的选择。 它将在没有任何人需要登录的情况下运行,并且Windows为服务提供广泛的监视支持。 您可以使用sc命令来安装,启动和停止服务,如果您拥有适当的权限,它甚至可以支持在其他计算机上控制服务。

为了让你的GUI与它沟通,你可以看看使用WCF。 它将允许您定义与C#类的服务交互,并且可以节省您不必担心检查共享目录或查看共享文件等问题。这种方法还可以轻松地同时支持多个客户端,像共享文件夹的方法会使这个困难。