C# 在Windows服务中转换我的应用程序

C# 在Windows服务中转换我的应用程序,c#,visual-studio-2010,service,C#,Visual Studio 2010,Service,我已经创建了一个包含多个项目的解决方案。我有一个项目,这是一个WPF应用程序。此应用程序与服务逻辑应用程序通信。该应用程序将所有流量重定向到特定对象的不同管理器。这些管理员通过几个类与数据库通信。解决方案中的另一个项目是,例如,可以与我连接的某些硬件进行通信的项目 如何将此解决方案(减去WPF应用程序?)转换为Windows服务?因此,所有的事情,如硬件通信和数据库保存仍然在运行,我可以随时启动WPF UI来配置一些设置 我真的不明白安装程序包是如何工作的。我已经创建了一个服务,它创建了中心逻辑

我已经创建了一个包含多个项目的解决方案。我有一个项目,这是一个WPF应用程序。此应用程序与服务逻辑应用程序通信。该应用程序将所有流量重定向到特定对象的不同管理器。这些管理员通过几个类与数据库通信。解决方案中的另一个项目是,例如,可以与我连接的某些硬件进行通信的项目

如何将此解决方案(减去WPF应用程序?)转换为Windows服务?因此,所有的事情,如硬件通信和数据库保存仍然在运行,我可以随时启动WPF UI来配置一些设置

我真的不明白安装程序包是如何工作的。我已经创建了一个服务,它创建了中心逻辑类的一个实例。该实例只应创建一次,实例化该类可确保启动其他管理器类,以及databasehandler类和处理外部硬件事件的类。因此,简而言之,当实例化中心逻辑类时,应用程序应该工作。因此,在启动服务时真正应该做的就是实例化该类。WPF UI应用程序仅用于配置,不一定需要

如何创建此类服务并为此创建安装程序?以下代码似乎还不够:

protected override void OnStart(string[] args)
{
    log.Debug("Starting service...");
    serviceLogic = new CentralLogic();
    log.Debug("Successfully started service");
}
或者我创建的安装程序是错误的。有人能给我指引正确的方向吗


编辑:我已经研究过了,似乎以后我会使用WCF让UI与服务通信。首先,我想在我的Windows pc上安装这项服务,让它正常工作。在VisualStudio中运行解决方案时,一切工作都与预期的一样。WPF应用程序是启动并创建CentralLogic类实例的应用程序。即使在那之后我没有对UI做任何事情,只“玩”硬件,一切都正常。因此,创建CentralLogic类的实例应该足以运行整个解决方案,因为该类管理其他类。我只是在创建安装程序、服务,甚至可能是建筑时出了问题。我不知道该在这里做什么。

这是一个有用的演练

您可以将UI构建到服务中,或者使用另一个与服务对话的应用程序,例如使用WCF


这也会有所帮助,但由于您已经将项目分解到一半。

阅读此文?解决方案不起任何作用,决定输出类型的是您选择构建或发布的项目。只需添加一个Windows服务项目,发布并安装它,然后将您的WPF应用程序连接到它。我同意,也许在服务中构建UI会更容易。我现在要查看你的链接。你需要检查你的目标操作系统。该服务将需要与不再常见的桌面交互。就个人而言,我会选择和服务对话的应用程序——但这取决于对你们来说会有多大的改变