Havdidi Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Guten Morgen! Ich habe eine art Mini-Visual C# programmiert. Also ein Tool mit dem der User programmieren kann. Das funktioniert auch soweit ganz gut. Also er kompiliert vernünftig usw. Habe nur ein Problem: Wir gehen davon dass, der User eine Datei erstellt. Mit dem Namen Beispiel.exe. Danach ändert er was an der Datei und möchte nocheinmal Kompilieren. Dies funktioniert, aber nicht. Der Compiler greift immernoch auf die kompilierte .exe zu, obwohl sie ja fertig kompiliert ist. Meine Idee wäre ja den Compiler irgendwie zu sagen, dass er die Datei freigeben soll. Aber ich weiß nicht wie, ich das machen soll. Ich hoffe ihr könnt mir helfen Mfg Havdidi Zitieren
TDM Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Wird sie nach dem Kompilieren gestartet? (Debugger oder Ähnliches) Zitieren
Havdidi Geschrieben 31. Juli 2009 Autor Geschrieben 31. Juli 2009 Die wird nur gestartet, wenn der User eine Checkbox checked. Die kompilierte Anwendung ist also geschlossen. Irgendwie muss ich den Compiler entladen =/. Wie z.b. mit StreamReader bla = new Streamreader ("blabla"); bla.Close(); <-- Damit wird die Datei, die der StreamReader ja liest wieder freigegeben. Und sowas muss es ja auch mit den Klasse "CSharpCodeProvider" geben. Zitieren
TDM Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Und sowas muss es ja auch mit den Klasse "CSharpCodeProvider" geben. Nö, wieso? Nach CompileAssemblyFromFile ist es fertig, das brauchst du nichts schließen oder disposen. Was stehen denn im Result für Fehler? Zitieren
Havdidi Geschrieben 31. Juli 2009 Autor Geschrieben 31. Juli 2009 Also irgendwie kann ich es selbst grad nicht glauben :confused: Den Code zum Kompilieren hatte ich aus dem Internet. Jetzt hab ich eine zweite Quelle gesucht. Da war der Code wesentlich kürzer. Dann hab ich das überflüssige entfernt und jetzt läuft's :upps:. Problem hat sich also von selbst gelöst Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.