Динамическое компилирование исходников - C#
Формулировка задачи:
Есть строка, в которой исходник с консольным приложением на каком-то языке (c++, c#, java). Как ее можно скомпилировать и выполнить в c#? Можно ли, чтобы скомпилированный код запускался как отдельная программа. Что-то типа ide для разработки
Решение задачи: «Динамическое компилирование исходников»
textual
Листинг программы
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using Microsoft.CSharp;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
string sProgram = @"using System;
namespace Generated
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(""Enter a string"");
string line = Console.ReadLine();
Console.WriteLine(line);
Console.ReadKey();
}
}
}";
var codeProvider = new CSharpCodeProvider(new Dictionary<string, string>()
{
{ "CompilerVersion", "v3.5" }
});
var compilerParams = new CompilerParameters
{
OutputAssembly = "D:\\Generated.exe",
GenerateExecutable = true,
};
// compile
var results = codeProvider.CompileAssemblyFromSource(compilerParams, sProgram);
// run
System.Diagnostics.Process.Start("D:\\Generated.exe");
Console.ReadKey();
}
}
}