22 Stimmen

Wie prüft man, ob eine Anwendung im Debug- oder Release-Modus ist?

Ich bin damit beschäftigt, einige Optimierungen an einer app von mir, was ist der sauberste Weg zu überprüfen, ob die app in DEBUG oder RELEASE ist

0 Stimmen

Vielleicht in der Protokolldatei nachsehen?

29voto

itowlson Punkte 72130

Zur Kompilierzeit oder zur Laufzeit? Zur Kompilierungszeit können Sie Folgendes verwenden #if DEBUG . Zur Laufzeit können Sie mit [Conditional("DEBUG")] um Methoden zu kennzeichnen, die nur in Debug-Builds aufgerufen werden sollen, aber ob dies sinnvoll ist, hängt von der Art der Änderungen ab, die Sie zwischen Debug- und Release-Builds vornehmen wollen.

24voto

Matthew Scharley Punkte 121038
static class Program
{
    public static bool IsDebugRelease
    {
        get
        {
 #if DEBUG
            return true;
 #else
            return false;
 #endif
        }
     }
 }

Allerdings neige ich dazu, itowlson zuzustimmen.

20voto

ShrapNull Punkte 960

Mir persönlich gefällt es nicht, wie #if DEBUG ändert das Layout. Dazu erstelle ich eine bedingte Methode, die nur im Debug-Modus aufgerufen wird, und übergebe einen Booleschen Wert als Referenz.

[Conditional("DEBUG")]
private void IsDebugCheck(ref bool isDebug)
{
    isDebug = true;
}

public void SomeCallingMethod()
{ 
    bool isDebug = false;
    IsDebugCheck(ref isDebug);

    //do whatever with isDebug now
}

1 Stimmen

Schöne Lösung :)

6voto

Yohan Punkte 983

Sie können verwenden ILSpy sowohl für exe als auch für dll. Ziehen Sie einfach Ihre DLL \EXE in der Explorer-Seitenleiste und sehen Sie unter: [assembly: Debuggingfähige Zeile ....

Beispiel 1: Kompilieren im Freigabemodus: enter image description here

Beispiel 2: Kompilieren im Debug-Modus: enter image description here

5voto

Joe Punkte 117971

Ich neige dazu, etwas wie das Folgende in AssemblyInfo.cs zu schreiben:

#if DEBUG
[assembly: AssemblyConfiguration("Debug build")]
#else
[assembly: AssemblyConfiguration("Release build")]
#endif

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X