Нужен ли мне .NET SDK, установленный на стороне клиента, чтобы codedom работал
Я использую систему.граф CodeDOM.Компилятор.CodeDomProvider для динамической генерации некоторого кода в моем настольном приложении.
Код генерируется следующим образом.
var provider = система.граф CodeDOM.Компилятор.Объект codedomprovider.CreateProvider ("CSharp");
CompilerResults cr = поставщик.CompileAssemblyFromSource(compileParams, textCode);
Я читал, что поставщик CSharp - это просто оболочка поверх CSC.exe в отличие от Roslyn, который предоставляет функции компилятора как функциональность сборки.
Вопрос: Если я использую систему.Пространство имен CodeDom для генерации кода означает ли это, что на клиентском рабочем столе, где будет работать это приложение, должен быть установлен .NET SDK, чтобы приложение могло вызывать CSC.exe.
Аналогично, если Roslyn использовался для создания сборки, нужно ли мне развертывать/копировать сборки Roslyn как часть моего приложения на рабочий стол клиента?
Что я уже пробовал:
Написал пример приложения, которое использует Roslyn и Code Dom.
Mehdi Gholam
Нет, вам это не нужно, просто фреймворк подойдет.
i_syed2000
Не могли бы вы объяснить, как это работает? Похоже, это работает и на меня. Но я немного смущен тем, как это работает. Это потому, что генерация кода встроена в само время выполнения .net?