Entwickler-Ecke
Sonstiges (.NET) - Formular bedingt einbinden (#if DEBUG)
weisnicht2 - Di 20.05.08 11:24
Titel: Formular bedingt einbinden (#if DEBUG)
Hallo.
Weiß jemand wie man ein Formular bedingt einbindet?
Im Code ist sowas problemlos möglich:
#if DEBUG
// Code
#endif
Aber wie mach ich das bei einem kompletten Formular, so das weder
form.cs form.designer.cs nocht das dazugehörige ressourcefile eingebunden werden?
Vielen Dank.
JüTho - Di 20.05.08 12:31
Vorschlag: in eine eigene Assembly auslagern und nur "#IF DEBUG" einbinden. In diesen Teilbereich passt etwas in der folgenden Art:
C#-Quelltext
1: 2: 3:
| Assembly asm = Assembly.Load("VSPolis-Adad9"); MyAdad9Form adad9 = (MyAdad9Form)asm.CreateInstance("JThomas.Adad9.MyAdad9Form"); adad9.Show(); |
Jürgen
weisnicht2 - Di 20.05.08 13:58
JüTho hat folgendes geschrieben: |
Vorschlag: in eine eigene Assembly auslagern und nur "#IF DEBUG" einbinden. In diesen Teilbereich passt etwas in der folgenden Art:
C#-Quelltext 1: 2: 3:
| Assembly asm = Assembly.Load("VSPolis-Adad9"); MyAdad9Form adad9 = (MyAdad9Form)asm.CreateInstance("JThomas.Adad9.MyAdad9Form"); adad9.Show(); |
Jürgen |
Hallo.
Erstmal Danke für die schnelle Antwort.
Was genau meinst du mit "in eine eigene Assembly auslagern"?
dieses 1 Formular in eine extra DLL reinschreiben?
Problem ist das dieses Formular auch Funktionen / Properties / globale statische Klassen von der hauptanwendung anspricht.
Ein Aulagern in eine DLL wäre ..problematisch.
Oder hab ich was falsch verstanden?
Danke.
Kha - Di 20.05.08 13:58
Oder direkt in der Projektdatei, MSBuild sei Dank:
XML-Daten
1:
| <Compile Include="Form1.cs" Condition=" '$(Configuration)' == 'Debug' "><...> |
JüTho - Di 20.05.08 14:10
weisnicht2 hat folgendes geschrieben: |
Was genau meinst du mit "in eine eigene Assembly auslagern"?
dieses 1 Formular in eine extra DLL reinschreiben? |
Genau. "Assembly" kann als Oberbegriff für EXE und DLL angesehen werden.
weisnicht2 hat folgendes geschrieben: |
Problem ist das dieses Formular auch Funktionen / Properties / globale statische Klassen von der hauptanwendung anspricht.
Ein Aulagern in eine DLL wäre ..problematisch. |
Hmmm. Könnte es sein, dass die Zusammenarbeit der Klassen (genauer: die Trennung der Klassen) nicht gut genug durchdacht ist?
Aber diese Frage ist hypothetisch.
Du brauchst sie nicht zu beantworten; vielleicht passt es für Deine Art des Debugging. Gut, dass Khabarakh solche Interna wie "Compile Condition" kennt. Jürgen
weisnicht2 - Di 20.05.08 15:28
Titel: Dankeschön.
Danke euch Beiden für die schnelle Hilfe.
Ich denke mit dem Condition bin ich auf dem richtigen Weg.
Aus Mangel an Zeit werde ich das später mal testen.
Eigentlich wird die <Projekt>.csproj Datei doch jedesmal neu erzeugt oder?
Somit wäre die Änderung weg...mal schauen muss ich testen.
Kha - Di 20.05.08 16:30
Titel: Re: Dankeschön.
weisnicht2 hat folgendes geschrieben: |
Eigentlich wird die <Projekt>.csproj Datei doch jedesmal neu erzeugt oder? |
Nö, die ist nicht Ziel sondern Quelle des Kompilierens :zwinker: . Und Projekteigenschaften und Co. sind so intelligent, nur die Teile anzufassen, die sie etwas angehen. Wenn man sich aber zu weit vom Originalaufbau entfernt, kommt VS irgendwann natürlich nicht mehr mit.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!