我创建了一个包含多个项目的解决方案。我有一个项目是 WPF 应用程序。此应用程序与服务逻辑应用程序通信。该应用程序将所有流量重定向到特定对象的不同管理器。这些管理器通过几个类与数据库进行通信。解决方案中的另一个项目是,例如,可以与我连接的某些硬件进行通信的项目。
如何将此解决方案(减去 WPF 应用程序?)转换为 Windows 服务?这样硬件通信和数据库保存等所有东西都还在运行,我可以随时启动 WPF UI 来配置一些设置。
我真的不明白安装程序打包是如何工作的。我创建了一个服务,它创建了一个中央逻辑类的实例。这个实例应该只创建一次,并且实例化这个类可以确保启动其他管理器类,以及一个数据库处理程序类和处理来自外部硬件的事件的类。所以简而言之,应用程序应该在实例化中央逻辑类时工作。因此,在启动服务时真正应该做的就是实例化该类。WPF UI 应用程序仅用于配置,不一定需要。
如何创建此类服务并为此创建安装程序?看来下面的代码还不够:
protected override void OnStart(string[] args)
{
log.Debug("Starting service...");
serviceLogic = new CentralLogic();
log.Debug("Successfully started service");
}
或者我正在创建错误的安装程序。谁能引导我走向正确的方向?
编辑:我已经调查过了,看来我稍后会使用 WCF 让 UI 与服务进行通信。首先,我想在我的 Windows 电脑上安装该服务并让它正常工作。在 Visual Studio 中运行解决方案时,一切正常。WPF 应用程序是启动和创建 CentralLogic 类的实例的应用程序。即使在那之后我没有对 UI 做任何事情,只是“玩”硬件,一切都正常。因此,创建 CentralLogic 类的实例应该足以让整个解决方案运行,因为该类管理其他类。只有创建安装程序、服务,甚至可能是建筑物对我来说都是错误的。我不知道在这里做什么。