void компилятор_СобытиеПроцессаКомпиляции(object Отправитель, КомпиляторПроекта.АргументыСобытияКомпилятора Аргументы) { Application.DoEvents(); if (Аргументы.ТипСобытия == КомпиляторПроекта.ТипСобытияКомпилятора.НачалоКомпиляцииКомпонента) { ДобавитьСообщение("Сборка компонента '" + Аргументы.НазваниеКомпонента + "'...", true); } else if (Аргументы.ТипСобытия == КомпиляторПроекта.ТипСобытияКомпилятора.КонецКомпиляцииКомпонента) { индикатор.Increment(1); ДобавитьСообщение("Сборка компонента '" + Аргументы.НазваниеКомпонента + "' успешно завершена", true); } else if (Аргументы.ТипСобытия == КомпиляторПроекта.ТипСобытияКомпилятора.КонецКомпиляцииПроекта) { ДобавитьСообщение("Проект успешно построен", true); } else if (Аргументы.ТипСобытия == КомпиляторПроекта.ТипСобытияКомпилятора.НачалоКомпиляцииПроекта) { индикатор.Properties.Minimum = 0; индикатор.Properties.Maximum = компилятор.КоличествоКомпонентовПроекта; индикатор.Properties.Step = 1; } else if (Аргументы.ТипСобытия == КомпиляторПроекта.ТипСобытияКомпилятора.ОшибкаКомпиляции) { ДобавитьСообщение("Не удалось выполнить сборку проекта. Ниже приведены ошибки компилятора:", true); if (Отправитель != null && Отправитель is КомпиляторПроекта) { КомпиляторПроекта компилятор = Отправитель as КомпиляторПроекта; int i = 0; foreach (System.CodeDom.Compiler.CompilerError ошибкаКомпиляции in компилятор.СписокОшибок) { if (i++ == 20) { // выводим только 20 первых сообщений ДобавитьСообщение("есть еще ошибки...", false); break; } ДобавитьСообщение(ошибкаКомпиляции.ErrorNumber + " " + ошибкаКомпиляции.ErrorText + " " + ошибкаКомпиляции.FileName + " " + ошибкаКомпиляции.Line.ToString(), false); } } Application.DoEvents(); // в случае, если произошла ошибка, то необходимо показать форму в диалоговом режиме //if( показатьФормуМодальноПриОшибке ) //{ this.Visible = false; this.ShowDialog(); //} } Application.DoEvents(); }
public ФормаКомпилятора(КомпиляторПроекта Компилятор, bool ПоказыватьОкноТолькоПриОшибке) { InitializeComponent(); if (Компилятор != null) { this.компилятор = Компилятор; показатьФормуМодальноПриОшибке = ПоказыватьОкноТолькоПриОшибке; if (!ПоказыватьОкноТолькоПриОшибке) { Компилятор.ФормаКомпилятора = this; } // цепляемся к событию компилятора Компилятор.СобытиеПроцессаКомпиляции += new КомпиляторПроекта.ОбработчикСобытияКомпилятора(компилятор_СобытиеПроцессаКомпиляции); } ДобавитьСообщение("Процесс построения проекта запущен", true); }
public static void ОбновитьКлиент() { ОбновлениеИсходныхКодов обновлениеИсходныхТекстов = new ОбновлениеИсходныхКодов(); bool требуетсяОбновление = false; try { требуетсяОбновление = обновлениеИсходныхТекстов.ПроверитьНаОбновление(false); } catch { return; } bool необходимаКомпиляция = false; if (требуетсяОбновление) { необходимаКомпиляция = true; #region Выполнение обновления исходных текстов try { if (обновлениеИсходныхТекстов == null) { return; } обновлениеИсходныхТекстов.ЗагрузитьОбновление(); } catch { } #endregion } else { необходимаКомпиляция = false; } if (!н еобходимаКомпиляция) { // проверяем, а существуют ли необходимые библиотеки foreach (КомпонентСистемы компонент in Приложение.ПолучитьВсеКомпоненты()) { if (!File.Exists(Path.Combine(Приложение.абочаяПапка, компонент.Имя + ".dll"))) { необходимаКомпиляция = true; break; } } } // компиляция исходных текстов if (необходимаКомпиляция) { КомпиляторПроекта компилятор = new КомпиляторПроекта(); if (!компилятор.ВыполнитьКомпиляцию(null)) { return; } } }
public ФормаКомпилятора(КомпиляторПроекта Компилятор) : this(Компилятор, false) { }