Динамическое компилирование исходников - 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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.333 из 5