Code Compiler - VB.NET und C#-Code zur Echtzeit kompilieren

    • Beta
    • Open Source

    Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von φConst.

      Code Compiler - VB.NET und C#-Code zur Echtzeit kompilieren

      Hallo Leute,
      hier hab ich eine kleine DLL gebastelt.

      Name:
      Der Name der Libary lautet "Code Compiler"

      Beschreibung:
      Sie kompiliert VB.NET oder C#-Quellcode in eine EXE/DLL-Datei und gibt zurück, ob es Fehler oder Warnungen gab.

      Verwendete Programmiersprache(n) und IDE(s):
      Visual Basic .NET / IDE VB 2010 Express

      Codebeispiel:

      VB.NET-Quellcode

      1. Imports CodeCompiler.CodeCompiler
      2. Public Class Form1
      3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      4. Dim VBCompiler As VBCodeCompiler
      5. Dim Arg As CodeCompilerSource
      6. Dim Code As String = "Hier Rein der Code"
      7. Dim OutputFileName As String = "Output.exe"
      8. 'True = Exe, False = DLL
      9. Dim CreateExecutable As Boolean = True
      10. Dim StartAfterCompile As Boolean = True
      11. Arg = New CodeCompilerSource(Code, OutputFileName, CreateExecutable, StartAfterCompile)
      12. VBCompiler = New VBCodeCompiler(Arg)
      13. VBCompiler.Compile()
      14. End Sub
      15. End Class


      Download(s):
      CodeCompiler.dll

      Lizenz/Weitergabe:
      Das Programm ist natürlich Freeware und Opensource ;)
      Dafür braucht man doch keine DLL,

      C#-Quellcode

      1. public static bool compileSourceCode(string sourceCode, string name)
      2. {
      3. bool result = true;
      4. CSharpCodeProvider provider = new CSharpCodeProvider();
      5. CompilerParameters @params = new CompilerParameters();
      6. /*~~~~COMPILE~~~~*/
      7. @params.GenerateInMemory = false;
      8. var assemblies = AppDomain.CurrentDomain
      9. .GetAssemblies()
      10. .Where(a => !a.IsDynamic)
      11. .Select(a => a.Location);
      12. @params.ReferencedAssemblies.AddRange(assemblies.ToArray());
      13. @params.OutputAssembly = name;
      14. @params.GenerateExecutable = true;
      15. CompilerResults results = provider.CompileAssemblyFromSource(@params, sourceCode);
      16. if (results.Errors.HasErrors)
      17. {
      18. result = false;
      19. }
      20. return result;
      21. }


      Ist eventualiter aus stackoverflow.
      Verwendete ich mal in einem Projekt.
      Und Gott alleine weiß alles am allerbesten und besser.