public MessageResult TryInstall() { var serviceName = ServiceInfo.ServiceName; var serviceFriendlyName = ServiceInfo.ServiceFriendlyName; var servicePath = ServiceInfo.ServicePath; var exePath = Path.GetFullPath(servicePath); if (!File.Exists(exePath)) { return(AppendLogsAndResult(false, string.Format("{0} is not found!", exePath))); } var serviceState = GetServiceState(serviceName); if (serviceState != ServiceState.NotFound) { return(AppendLogsAndResult(true, string.Format("{0} is already installed!", exePath))); } //this is a bug, todo //ServiceInstaller.Install(serviceName, serviceFriendlyName, servicePath); AppendLogs("----------"); AppendLogs(serviceName); AppendLogs(serviceFriendlyName); AppendLogs(exePath); AppendLogs("----------"); ServiceInstaller.InstallAndStart(serviceName, serviceFriendlyName, exePath); GetServiceState(serviceName); return(AppendLogsAndResult(true, string.Format("{0} install completed!", serviceName))); }
public MessageResult TryInstall() { var failResult = MessageResult.MethodResult(nameof(TryInstall), false); var successResult = MessageResult.MethodResult(nameof(TryInstall), true); try { var installed = ServiceInstaller.ServiceIsInstalled(ServiceName); if (installed) { var message = string.Format("{0} already installed!", ServiceName); successResult.Message = message; return(successResult); } ServiceInstaller.InstallAndStart(ServiceName, DisplayName, ExePath); return(successResult); } catch (Exception e) { failResult.Message = failResult.Message + " => " + e.Message; return(failResult); } }