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.
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
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.
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 👍