Laden...

[CodeDom] Projekt im eigenen Programm kompilieren

Erstellt von Ayke vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.457 Views
Ayke Themenstarter:in
643 Beiträge seit 2006
vor 15 Jahren
[CodeDom] Projekt im eigenen Programm kompilieren

Hallo Leute,

ich möchte gerne ein Projekt kompilieren. So mache ich das in moment

           
	   public void Compile(Code)
	   {
 	     CSharpCodeProvider compiler = new CSharpCodeProvider();
           CompilerParameters compilerArgs = new CompilerParameters();
           compilerArgs.OutputAssembly = "dateiName.exe";
           compilerArgs.GenerateExecutable = true;
           compilerArgs.CompilerOptions = "/target:winexe";
           foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
           compilerArgs.ReferencedAssemblies.Add(asm.Location);
           CompilerResults cResults = compiler.CompileAssemblyFromSource(compilerArgs, SourceCode(Code));
        }

        public string SourceCode(string Code)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("using System;\r\n");
            sb.Append("using System.Windows.Forms;\r\n");
            sb.Append("using System.IO;\r\n");
            sb.Append("using System.Diagnostics;\r\n");

            sb.Append("public class MainClass\r\n");
            sb.Append("{\r\n");
            sb.Append("public static void Main()\r\n");
            sb.Append("{\r\n");
            sb.Append(Code);
            sb.Append("}\r\n");
            sb.Append("}\r\n");

            return sb.ToString();
        }

Jetzt möchte ich aber keine CodeSnipped sondern ein ganzes Projekt kompilieren. Also lese ich die .cs datei wo sich die main() befindet. Jetzt weiss ich allerdings nicht wie ich Resourcen und ob die weiteren .cs Dateien automatisch vom Kompiler gefunden werden.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Ayke,

Jetzt weiss ich allerdings nicht wie ich Resourcen und ob die weiteren .cs Dateien automatisch vom Kompiler gefunden werden.

ich denke, du musst alles explizit angeben. Wobei ich nicht mal weiß, wie das mit Ressourcen in CodeDom läuft und ob die Erstellung der Ressourcen überhaupt über CodeDom möglich ist. Das Einbinden der Ressourcen sollte über CodeDom kein Problem sein, weil man ja Compiler-Optionen angeben kann.

herbivore

6.862 Beiträge seit 2003
vor 15 Jahren

Automatisch wird da gar nichts gefunden, wie Herbivore sagt, musst du alles angeben was für den Kompiliationsprozess benötigt wird.

Ich denke du hast ne VS Solution oder Projektdatei oder? Dann wäre ne einfache Möglichkeit einfach MSBuild aufzurufen mit der Projektdatei und dir des dadurch kompilieren zu lassen.

Baka wa shinanakya naoranai.

Mein XING Profil.

Ayke Themenstarter:in
643 Beiträge seit 2006
vor 15 Jahren

Ja, ich habe eine Projektdatei. Ich werde dan wohl msbuild verwenden.

Und danke für euere Antworten. Ich finde es echt super das hier so viele Leute freiwillig helfen. Großes Lob 👍