public static Settings Activate() { Debug.WriteLine("Start activate settins"); string appdataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string rbspath = Path.Combine(appdataPath, "bim-starter"); if (!Directory.Exists(rbspath)) { Debug.WriteLine("Create directory " + rbspath); Directory.CreateDirectory(rbspath); } string solutionName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; string solutionFolder = Path.Combine(rbspath, solutionName); if (!Directory.Exists(solutionFolder)) { Directory.CreateDirectory(solutionFolder); Debug.WriteLine("Create directory " + solutionFolder); } xmlPath = Path.Combine(solutionFolder, "settings.xml"); Settings s = null; if (File.Exists(xmlPath)) { XmlSerializer serializer = new XmlSerializer(typeof(Settings)); using (StreamReader reader = new StreamReader(xmlPath)) { try { s = (Settings)serializer.Deserialize(reader); Debug.WriteLine("Settings deserialize success"); } catch { } } } if (s == null) { s = new Settings(); Debug.WriteLine("Settings is null, create new one"); } FormSettings form = new FormSettings(s, xmlPath); Debug.WriteLine("Show settings form"); form.ShowDialog(); if (form.DialogResult != System.Windows.Forms.DialogResult.OK) { Debug.WriteLine("Setting form cancelled"); throw new Exception("Отменено"); } s = form.newSets; Debug.WriteLine("Settings success"); return(s); }