Visual Studio 2010 C# во время выполнения компиляции winforms
У меня есть следующая проблема, постараюсь описать ее в ближайшее время.
В моей программе есть возможность скомпилировать winform в.exe, нажав на кнопку.
Теперь я попытался сделать это с CodeDom, поэтому в моей программе у меня есть следующая строка:
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, text);
где codeProvider - это CodeDomProvider, а text - это источник, из которого производится компиляция.
Проблема в том, что winform мне нужно сохранить, так как.exe имеет класс, который использует другие классы и формы, и, поскольку параметр 'text' является строковым параметром, он должен включать все эти классы, что приводит к ОГРОМНОМУ количеству код, не говоря уже о множестве ошибок. Вот пример того, что я имею в виду.
Должны быть другие пути, вопрос в том, что они? Заранее спасибо!
1 ответ
Если вы всегда используете один и тот же набор классов, стоило бы поместить эти общие классы в библиотеку классов и сослаться на это из динамически скомпилированного кода.
Если они не одинаковы в каждом случае, трудно увидеть ожидаемые улучшения - если нужно скомпилировать столько кода, его нужно скомпилировать, и в нем так много кода, в котором могут быть ошибки.