Visual Studio 2010 C# во время выполнения компиляции winforms

У меня есть следующая проблема, постараюсь описать ее в ближайшее время.

В моей программе есть возможность скомпилировать winform в.exe, нажав на кнопку.

Теперь я попытался сделать это с CodeDom, поэтому в моей программе у меня есть следующая строка:

CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, text);

где codeProvider - это CodeDomProvider, а text - это источник, из которого производится компиляция.

Проблема в том, что winform мне нужно сохранить, так как.exe имеет класс, который использует другие классы и формы, и, поскольку параметр 'text' является строковым параметром, он должен включать все эти классы, что приводит к ОГРОМНОМУ количеству код, не говоря уже о множестве ошибок. Вот пример того, что я имею в виду.

Должны быть другие пути, вопрос в том, что они? Заранее спасибо!

1 ответ

Решение

Если вы всегда используете один и тот же набор классов, стоило бы поместить эти общие классы в библиотеку классов и сослаться на это из динамически скомпилированного кода.

Если они не одинаковы в каждом случае, трудно увидеть ожидаемые улучшения - если нужно скомпилировать столько кода, его нужно скомпилировать, и в нем так много кода, в котором могут быть ошибки.

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