具有 GUI 前端的 Windows Service 应用程序



我正在尝试使用 VB.net 2010编写Windows服务,该服务还包含一个Windows表单,以便管理员可以在安装服务后加载Windows Form GUI(以便他们可以更改存储在My.Settings中的某些属性。<config file>来自核心项目。

我想在构建项目后拥有一个单独的.exe可执行文件(因此运行它的人可以使用 installutil 安装服务.exe也可以运行 GUI 应用程序) - 但它们必须在同一个项目中,因为我需要 GUI 才能从存储在应用程序中的 My.Settings.Properties 访问存储的属性.exe.config

我怎样才能做到这一点?

  1. 创建您的 GUI 应用程序。
  2. 然后将服务类添加到其中。

现在,您可以通过 InstallUtil 安装该服务。

或者,您可以直接从资源管理器或 Cmd 运行.exe.exe GUI 将打开。

服务和 GUI 都将从同一个配置文件读取,因为它们是同一个程序集。

当然,这只是一种方法。 @T.S.提供了另一种方法,如果实施得当,该方法同样有效。

有关如何执行此操作的快速概述
:1. 创建 WinForms 应用
2.添加 System.Configuration.Install 和 System.ServiceProcess 3 的引用
。创建从 System.ServiceProcess.ServiceBase 继承的服务类并重写相应的方法。
4. 创建继承自 System.Configuration.Install.Installer 5 的安装程序
。使用 RunInstaller(True) 属性 6 标记安装程序类
。使安装程序 .ctor 看起来像这样:

Public Sub New()
Dim spi As ServiceProcessInstaller = New ServiceProcessInstaller
Dim si As ServiceInstaller = new ServiceInstaller
spi.Account = ServiceAccount.LocalSystem
si.StartType = ServiceStartMode.Manual
si.ServiceName = "Service1"
Installers.Add(si)
Installers.Add(spi)
End Sub

最新更新