public MainWindow() { log.DebugFormat("Обновление запущено {0}", typeof(MainWindow).Assembly.Location); var args = Environment.GetCommandLineArgs(); var pid = args.Skip(1).Select(v => SafeConvert.ToInt32(v, -1)).FirstOrDefault(-1); var exe = args.Skip(2).FirstOrDefault(); Closed += (sender, eventArgs) => { log.DebugFormat("Обновление завершено"); }; var task = Run(pid, exe, FileHelper.MakeRooted(".")); task.ContinueWith(t => { if (t.IsFaulted) { log.Error("Процесс обновления завершился ошибкой", t.Exception); App.NotifyAboutException(t.Exception); } Close(); }, TaskScheduler.FromCurrentSynchronizationContext()); InitializeComponent(); ResizeMode = ResizeMode.NoResize; SizeToContent = SizeToContent.Manual; }