Kompilierung zur Laufzeit

teelleet

Grünschnabel
Hi,

ich will in C# Code erst zur Laufzeit kompilieren und hab mir dazu folgendes Beispiel angesehen:
http://www.tutorials.de/forum/net-tutorials/164307-c-kompilierung-zur-laufzeit.html

allerdings wird dort der Code, der erst später kompiliert wird in einen Stringbuilder geschrieben, was bei meinem Projekt nicht funktioniert, da ich mit sehr vielen verschiedenen Klassen in verschiedenen Ordner arbeite, wie kann ich mein komplettes Projekt erst zur Laufzeit kompilieren ?

ich habe viele viele dlls, die eingebunden werden, mitdenen man eine pdf zeichnen kann. ich hab jetzt einprogramm das hergeht und xml dateien von einem bestimmten programm automatisch als pdf nachzeichnet.

und der benutzer soll z.b. die werte noch ändern können, wie stark ecken abgerundet werden, oder wie die schriftart sein soll, usw, und das muss dann in meine start programm rein, die restlichen dlls bleiben unverändert.

mfg

teelleet
 

engelmarkus

Erfahrenes Mitglied
Für mich klingt das nach einem Design-Fehler.
Wieso kannst du die Werte nicht in einem Fenster abfragen oder aus einer Datei lesen?
 

teelleet

Grünschnabel
Ich

will doch nur einen builder haben, der auch größere projekte zur laufzeit kompilieren soll, und was meint ihr mit design fehler, ich verwende hald mehrere .cs dateien, und die müssen hald mit erstellt werden.
 

Nico Graichen

Erfahrenes Mitglied
Hi

Design-Fehler daher, weil du die Konfiguration deiner Anwendung (die Meta-Informationen) hart kodiert hast.
Erstell einen Konfigurationsdialog oder eine Konfig-Datei, worin die Einstellungen, die der Anwender ändern können soll, stehen. diese übergibst du zur Laufzeit an die entsprechende(n) Funktion(en)

PS: Halte dich bitte an die Netiquette
 

teelleet

Grünschnabel
hey

Design-Fehler daher, weil du die Konfiguration deiner Anwendung (die Meta-Informationen) hart kodiert hast.

das versteh ich noch immer ned wie du das meinst, sorry bin neu in c#,

und das mit der config datei hab ich mir auch schon überlegt, aber es soll nur eine einzige exe datei sein und man soll keine extra datei dazu brauchen.
 

FwDonnerbalken

Erfahrenes Mitglied
Hallo Teeleet,

darf ich dir nahelegen die Netiquette durchzulesen. Ist ja grauselig wie du schreibst... zur Info: Deine Tastatur hat auch eine Umschalt-Taste zum GROßSCHREIBEN!

Zu deinem Problem: Verstehe ich das richtig, dass du für jede erdenkbare PDF Darstellung das Projekt neu erstellen willst?! Was macht das denn für einen Sinn? Oder schildere doch den Grund, warum du das Projekt zur Laufzeit erstellen möchtest, eventuell hilft das dein Problem besser zu verstehen.
 

teelleet

Grünschnabel
Hi,

ok, entschuldigt die letzten posts, waren alle sehr übereilt geschrieben.
Ich versuche das Problem jetzt so genau und einfach wie möglich zu schildern:

Benutzer starte meine .exe , und gibt noch ein paar Informationen ein, ein paar Zahlen und so. Dann klick der Benutzter auf "Erstellen" oder hald "Build" und erhält eine zweite .exe Datei, die jetzt so eingerichtet ist wie er es will. In dieser sind seine Einstellungen fest gespeichert.

Es muss genau so ablaufen, das ist wichtig, und jetzt für die Neugierigen unter euch:

Wie gesagt, man soll damit PDFs zeichnen können, und ich hab von meinem Programm schon mal eine "Demo" Version verteilt und dann kam der eine Abteilungsleiter: "in meiner abteilung soll ein erstelltes pdf aber anders aussehen, nicht so patzig", und der nächste "bei mir soll man auch was lesen können, wenn das so fein ist sieht das nach nichts aus", dann wurde beschlossen das es jeder so einstellen soll wie er will.

Und der BIGBOS hat dann entschieden,dass ich so nen Builder machen soll.

Dann hab ich folgendes Beispiel gefunden, das funktionieren würde, aber nur wenn ich den kompletten Code in den StringBuilder schreibe, und das geht nicht, weil ich viele verschiedene .cs Dateien verwende, und das sonst nur Chaos wäre.

Jetzt meine Frage an euch: Wie kann ich Code zur Laufzeit kompilieren, mit mehreren Dateien oder wie könnte es sonst funktionieren.

mfg

teelleet
 

engelmarkus

Erfahrenes Mitglied
Man kann bestimmt mit einer Resource arbeiten. Man sollte eigentlich bei einem .Net-Programm eine Resource, die in der Exe-Datei integriert ist, zur Laufzeit verändern und auch wieder in die Exe-Datei speichern können.