Как я могу скомпилировать динамический код во время выполнения в текущей сборке?

Я использую VBCodeProvider компилировать код, но он генерирует новую сборку, а также мне нужно добавить все ссылки на сборки, которые мне нужно использовать.

Есть ли способ скомпилировать код в текущей сборке?

2 ответа

Решение

Вы не можете закалить текущую сборку.

Пару лет назад я написал статью на тему динамической компиляции: http://emoreau.com/Entries/Articles/2011/07/Compiling-code-on-the-fly.aspx

Кстати, Roslyn доступен только в том случае, если вы используете VS2015 (если вы не используете CTP, которые были доступны для VS2013, но это не хорошая идея для чего-либо еще, кроме тестирования).

VBCodeProvider устарел. Используйте Roslyn. Но это все равно не позволит вам изменить существующую сборку во время выполнения, потому что это невозможно.

Скомпилируйте и загрузите новую сборку. Вы можете использовать Reflection для автоматического добавления списка ссылок на компиляцию Roslyn.

Другие вопросы по тегам