Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85

Компиляция на лету

01.10.2007, 21:45. Показов 4195. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я знаю, что в System.Reflection.Emit есть классы для компиляции C# кода и т.д., но в MSDN ни слова!!! как это чудо юзать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2007, 21:45
Ответы с готовыми решениями:

Компиляция regex на лету
Есть строки Для поиска нужной строки пользователь вводит 5*B Далее код: string first = param.RemoveRightPart("*"); ...

Компиляция WinForms приложения на лету. Некомпилится, причина не понятна.
Вот пытаюсь откомпилировать WindowsForms приложение. Не компилируется, выдаёт ошибки: Количество ошибок: 2 Ошибка: Имя типа или...

Кодогенерация на лету C#
Переодически вижу на форуме вопросы про динамическое выполнение С# кода. Например С# Можно ли выполнять код динамически? Поэтому...

9
Администратор
 Аватар для mik-a-el
87855 / 53176 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
01.10.2007, 23:01
Динамическая компиляция и загрузка кода
0
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85
03.10.2007, 17:52  [ТС]
Такая проблема! Не компилит исходники в которых используются подкдючаемые namespace: типа System.Windows.Forms и т.д. что делать?
0
Администратор
 Аватар для mik-a-el
87855 / 53176 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
03.10.2007, 17:56
Ну а что пишет?
0
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85
03.10.2007, 17:59  [ТС]
The type or namespace name 'Windows' does not exist in the namespace 'System' (are you missing an assembly reference) Вот такая чушь!
0
Администратор
 Аватар для mik-a-el
87855 / 53176 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
03.10.2007, 18:20
Это не чушь, все правильно. В компилируемой сборке System.Windows есть в References?
0
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85
03.10.2007, 19:34  [ТС]
Как добавить сборку из .Net при компиляции
Комплю так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void CompileFile(string CodeFile, string ReferenceLocation, string[] assemblies, string Output)
        {
            try
            {
                CSharpCodeProvider codeCompiler = new CSharpCodeProvider();
                CompilerParameters parameters = new CompilerParameters(assemblies, Output);
                parameters.ReferencedAssemblies.Add(ReferenceLocation);
                CompilerResults results = codeCompiler.CompileAssemblyFromFile(parameters, CodeFile);
                if (results.Errors.HasErrors)
                {
                    StringBuilder build = new StringBuilder();
                    foreach (CompilerError my in results.Errors)
                    {
                        build.AppendLine(my.ErrorText);
                    }
                    MessageBox.Show(build.ToString(), "Ошибки компиляции.");
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка компиляции");
            }
        }
0
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85
04.10.2007, 16:05  [ТС]
всё извиняюсь разобрался, работает
0
 Аватар для -=G-L-A-V-A-K=-
18 / 18 / 3
Регистрация: 16.02.2010
Сообщений: 243
05.01.2011, 10:51
Мне тоже понадобилось сделать нечто подобное, но этот код не работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CSharpCodeProvider codeCompiler = new CSharpCodeProvider();
            CompilerParameters parameters = new CompilerParameters(new string[0] { }, @"C:\programm.exe");
            parameters.ReferencedAssemblies.Add(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll");
            parameters.MainClass = "Program";
            CompilerResults results = codeCompiler.CompileAssemblyFromFile(parameters, @"C:\lol.ggl");
            if (results.Errors.HasErrors)
            {
                StringBuilder build = new StringBuilder();
                foreach (CompilerError my in results.Errors)
                {
                    build.AppendLine(my.ErrorText);
                }
                MessageBox.Show(build.ToString(), "Ошибки компиляции.");
            }
            else
            {
                System.Diagnostics.Process.Start(@"C:\programm.exe");//тут исключение, что C:\programm.exe не является приложением Win32
            }
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
05.01.2011, 12:14
-=G-L-A-V-A-K=-, используй поиск, теме 3 года. Всё уже обсуждалось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2011, 12:14
Помогаю со студенческими работами здесь

Изменение части кода на лету
Мне надо изменить часть кода вот пример if (textBox1.Text == "111") { }Мне при нажатии на кнопку в форме надо изменить 111 на...

Чтение excel-файла на лету
Такая проблемка возникла: Есть Excel-файл, в который сторонее приложение по DDE-экспорту непрерывно выводит всякие данные. Мне в моем...

Сборка под клиента на лету
Сборка приложения под id клиента в среде linux. Нужна помощь. Объясняю суть проблемы: Есть приложение, написаное на C#. Это приложение...

EF создание сущности на лету
Вопрос такой: Имеется сущность документ типа А в БД например у нее есть поля: ИД Название ТелоДокумента ИДКаталога ...

ReportViewer - формирование цвета строки на лету
Хотелось бы некоторые строки при выводе отчета помечать особым образом - возможно ли это , по какому событию? Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru