Autor Beitrag
weisnicht2
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 20.05.08 11:24 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden C#-Quelltext
1:
2:
3:
Assembly asm = Assembly.Load("VSPolis-Adad9");
MyAdad9Form adad9 = (MyAdad9Form)asm.CreateInstance("JThomas.Adad9.MyAdad9Form");
adad9.Show();

Jürgen
weisnicht2 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 20.05.08 13:58 
user profile iconJüTho hat folgendes geschrieben:
Vorschlag: in eine eigene Assembly auslagern und nur "#IF DEBUG" einbinden. In diesen Teilbereich passt etwas in der folgenden Art:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 20.05.08 13:58 
Oder direkt in der Projektdatei, MSBuild sei Dank:
ausblenden XML-Daten
1:
<Compile Include="Form1.cs" Condition=" '$(Configuration)' == 'Debug' "><...>					
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 20.05.08 14:10 
user profile iconweisnicht2 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.

user profile iconweisnicht2 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 20.05.08 16:30 
Titel: Re: Dankeschön.
user profile iconweisnicht2 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.