| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- using System.Collections;
 
- using System.ComponentModel;
 
- using System.Configuration.Install;
 
- using System.IO;
 
- using System.Security.Principal;
 
- using System.ServiceProcess;
 
- namespace PRSServices;
 
- public class PRSInstaller : Installer
 
- {
 
-     private readonly ServiceProcessInstaller _proc;
 
-     private readonly ServiceInstaller _svc;
 
-     public PRSInstaller()
 
-     {
 
-         _proc = new ServiceProcessInstaller();
 
-         _svc = new ServiceInstaller { StartType = ServiceStartMode.Automatic };
 
-         Installers.Add(_svc);
 
-         Installers.Add(_proc);
 
-     }
 
-     protected override void OnBeforeInstall(IDictionary savedState)
 
-     {
 
-         var username = Context.Parameters["/username"];
 
-         if (string.IsNullOrWhiteSpace(username))
 
-         {
 
-             _proc.Account = ServiceAccount.LocalSystem;
 
-             _proc.Username = WindowsIdentity.GetCurrent().Name;
 
-         }
 
-         else
 
-         {
 
-             _proc.Account = ServiceAccount.User;
 
-             _proc.Username = username;
 
-             _proc.Password = Context.Parameters["/password"] ?? "";
 
-         }
 
-         _svc.ServiceName = Context.Parameters["/name"];
 
-         _svc.DisplayName = Context.Parameters["/displayName"];
 
-         _svc.Description = Context.Parameters["/description"];
 
-         // Change to .exe because .NET creates and runs .dll
 
-         Context.Parameters["assemblypath"] =
 
-             "\"" + Path.ChangeExtension(Context.Parameters["assemblypath"], "exe") + "\" /service=" + _svc.ServiceName;
 
-         base.OnBeforeInstall(savedState);
 
-     }
 
-     protected override void OnBeforeUninstall(IDictionary savedState)
 
-     {
 
-         _svc.ServiceName = Context.Parameters["/name"];
 
-         // Change to .exe because .NET creates and runs .dll
 
-         Context.Parameters["assemblypath"] =
 
-             "\"" + Path.ChangeExtension(Context.Parameters["assemblypath"], "exe") + "\" /service=" + _svc.ServiceName;
 
-         base.OnBeforeUninstall(savedState);
 
-     }
 
- }
 
 
  |