Hallo an die Profis,
äm ja kurze Frage: Ich hab mir mal dieses "Abdunkeln" einer Form in mein Program eingeklaut...funktioniert ja alles super, allerdings kommt VS Studio Express C# 08 damit beim debuggen nicht klar. ich würde jetzt gerne sowas haben, das es nur beim release eingeschaltet wird.
Geht sowas? Also bestimmte Parameter nur beim debuggen übergeben, die dann abgefragt werden und das abdunkeln dann ausschalten und beim realease eben andere, damit es wieder eingeschaltet wird...
Kann man sowas realisieren?
Dankeschön....
Oder du benutzt Präprozessordirektiven. Wenn in den Projekteinstellungen der Debug-Konfiguration "DEBUG-Konstante definieren" aktiviert ist (und im Release nicht) - was standardmäßig der Fall ist - kannst du dann einfach mit #if
und #else
die Kompilierung im Debug- und Releasemodus steuern.
#if DEBUG
// Code, der beim Debug-Build kompiliert wird
#else
// Code, der beim Release-Build kompiliert wird
#endif
Eine andere Möglichkeit für bedingte Kompilierung ist noch das System.Diagnostics.ConditionalAttribute
.
Beste Grüße,
dN!3L
hm ich hab jetzt diese debug konstante in den projekteinstellungen aktiviert
und dann:
#if !DEBUG
this.TopMost = true;
startShadowing();
#endif
gemacht. allerdings passiert gar nichts..der code wird nicht beim "erstellen" ausgeführt bzw kompiliert....
#define DEBUG nochmal extra hat auch nichts gebracht....komisch
In welcher Konfiguration hast du das gemacht?
Dein Beispiel wird im Release-Modus kompiliert und im Debug nicht (du hast ja eine Negation drin: !DEBUG
).
hm ich hab jetzt diese debug konstante in den projekteinstellungen aktiviert Standardmäßig ist aber alles schon richtig eingestellt. Sicher, dass du die DEBUG-Konstante nicht auch für den Release-Modus aktiviert hast? Dann würde dein Beispiel nämlich weder im Debug- noch im Release-Modus kompiliert werden.
Gruß,
dN!3L
tja, jetzt wunder ich mich aber..
genau das habe ich nämlich gesucht, weil ich bei mir zu hause (bin in der firma) diese einstellung habe..
bei mir gibt es diese "konfigurationseinstellung" gar nicht in den optionen und die symbolleiste dafür ist ausgegraut...
Nochmal zur Verdeutlichung (VisualStudio graut auch allen nicht kompilierten Code schön aus; VS ist momentan im Debug-Modus):
bei mir gibt es diese "konfigurationseinstellung" gar nicht in den optionen und die symbolleiste dafür ist ausgegraut...
"Projekt > (Rechtsklick) > Einstellungen > Erstellen" hast du nicht? Welche VS-Version hast du?
ja richtig, ist alles bei mir so ausgegraut, daher wunder ich mich ja. hab mir ja auch die msdn dazu durchgelesen etc....
ich glaube das liegt an diesen konfigurationseinstellungen....aber ich hab die nicht....bei mir sind mehrere projekte in der projektmappe, liegt es daran? kannd och eigentlich gar nicht...
weiterhin, wenn ich die debugkonstante in den projekteinstellungen nicht definieren und die mit #define DEBUG in der datei selbst definiere ist das das selbe?
zum neuen beitrag: ja klar habe ich "erstellen", aber über der horizontalen linie über Allgemein gibt es bei mir die Liste "Konfiguration" nicht..
Hi,
schau mal, ob unter
Tools -> Options
Hier dann das Häckchen bei "Show all settings setzen"
Und dann unter
Projects and Solutions -> General
ein Häckchen bei "Show advanced build configurations" gesetzt ist. Nu dann kannst du in der Express-Version auch zwischen Debug und Release wechseln.
ach mensch, wenn man euch nicht hätte 👍
KLASSE!! funktioniert natürlich jetzt alles...oman an den kopf fass
Vielen Dank für die Geduld!