/// <summary> /// Uninstalls the server. /// </summary> public static void UnInstallServer(string applicationAssemblyPath) { CASApplicationInstance application = new CASApplicationInstance(); string[] args = new string[2]; args[0] = "/silent"; args[1] = "/uninstall"; application.ProcessCommandLine(true, applicationAssemblyPath, args); }
static void Main() { string m_cmmdLine = Environment.CommandLine; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (m_cmmdLine.ToLower().Contains(str_debug_install_argument)) { CASApplicationInstance.InstallServer(Assembly.GetExecutingAssembly().Location); } if (m_cmmdLine.ToLower().Contains(str_debug_uninstall_argument)) { CASApplicationInstance.UnInstallServer(Assembly.GetExecutingAssembly().Location); } CASApplicationInstance application = new CASApplicationInstance(); ConfigurationEditorMain config = new ConfigurationEditorMain(); try { if (!Environment.UserInteractive) { Directory.SetCurrentDirectory(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName); if (application.ProcessCommandLine()) { return; } application.StartAsService(new UAServer()); return; } } catch (Exception e) { Utils.Trace(e, "Unexpected error starting service."); return; } #if DEBUG MessageBox.Show("Attach debug point"); #endif if (m_cmmdLine.ToLower().Contains(str_installic_argument)) { try { LibInstaller.InstallLicense(true); } catch (Exception ex) { MessageBox.Show("License installation has failed, reason: " + ex.Message); } } UAServer server = new UAServer(); try { FileInfo configFI = RelativeFilePathsCalculator.GetAbsolutePathToFileInApplicationDataFolder(Settings.Default.ConfigurationFilePath); config.ReadConfiguration(configFI); if (config.Configuration == null) { throw new ArgumentNullException("Cannot read configuration"); } BaseDirectoryHelper.Instance.SetBaseDirectoryProvider(new BaseDirectoryProvider(configFI.DirectoryName)); ApplicationCertificate.CheckApplicationInstanceCertificate(config.Configuration, 1024, (x, y) => true, true); //TODO add logging function or user interface. ApplicationCertificate.OverrideUaTcpImplementation(config.Configuration); server.Start(config.Configuration); Application.Run(new ServerForm(server, config.Configuration, application)); } catch (Exception e) { HandleException("UA Server", e); } finally { server.Stop(); } }