# Wenn DEBUG ignoriert wird (VB.net oder C #)

8

Ich habe einige davon in meinem Code, die bisher gut funktionierten:

%Vor%

Nun, ich merke, dass in letzter Zeit der Code in der "#If DEBUG Then ... #End If" wird auch im "Release Mode" ausgeführt.

Das ist seltsam und ist vorher nicht passiert. Was hätte so passieren können? die #If DEBUG werden jetzt ignoriert (sie werden sowohl im debug in der IDE als auch in der endgültigen ausführbaren Datei ignoriert)?

Ich habe Clean, Rebuild, etc .: kein Glück angewendet. Danke für Hinweise und Hilfe.

-Pam

    
Pam 02.08.2011, 12:44
quelle

6 Antworten

25

Stellen Sie zunächst sicher, dass Sie den Unterschied zwischen der Ausführung des Codes und dessen Erstellung verstehen. Zu viele Leute setzen "Starten in einem Debugger" mit "der Debug-Version" und "Starten nicht in einem Debugger" mit "der Release-Version" gleich. Sie sind vollständig orthogonal - Sie können einen Release-Build in einem Debugger starten (normalerweise mit weniger verfügbaren Informationen), und Sie können einen Debug-Build nicht in einem Debugger starten. Entschuldigung, wenn Sie sich dessen bereits bewusst waren.

Wenn Sie nun die Projektkonfiguration, die Sie erstellen, wirklich auf geändert haben, müssen Sie die Projekteigenschaften für diese spezifische Konfiguration überprüfen. Ich weiß nicht, wie es in VB aussieht, aber in C # in den Projekteigenschaften, in der Build-Registerkarte, wird es eine Liste definierter Symbole geben - das ist was bewirkt, ob #if DEBUG code ist gebaut oder nicht. Hat vielleicht jemand die Projektkonfiguration von Debug in Release kopiert?

EDIT: Eine Möglichkeit, dies bei build zu überprüfen, ist:

%Vor%

In einem Release-Build sollte ohne Fehler erstellt werden. Im Debug wird es nicht.

BEARBEITEN: Eine andere Option ist, dass sich Ihre Konfiguration der gesamten Lösung nun auf die falschen Projekt Konfigurationstypen bezieht. Ich kann mich nicht an den genauen Menünamen erinnern, aber wenn Sie sich in Project for Configuration Manager umsehen, sollten Sie in der Lage sein, eine Rasterzuordnung "Projekt" und "Lösungskonfiguration" für die zu erstellende Projektkonfiguration aufzurufen.

    
Jon Skeet 02.08.2011, 12:48
quelle
13
  

Unter Projekteigenschaften / Kompilieren / Erweiterte Kompilieroptionen gibt es   eine Checkbox namens "Define Debug Constant", die dies setzt.

Check out: Ссылка

EDIT: Versuchen Sie diese Initialisierung mit:

%Vor%     
Gage 02.08.2011 12:47
quelle
4

Haben Sie zufällig die "DEBUG-Konstante definieren" für die Release-Konfiguration angekreuzt, während Sie sich in den Projekteigenschaften / Build befanden?

Stellen Sie außerdem sicher, dass Sie die Debug-Konfiguration auf Projektebene nicht innerhalb der Release-Konfiguration auf Lösungsebene erstellen (siehe Konfigurationsmanager).

    
Branko Dimitrijevic 02.08.2011 12:50
quelle
3

C # -Projekt (Visual Studio)

  1. Gehe zu: Projekteigenschaften - & gt; Erstellen (Registerkarte)
  2. Wählen Sie Konfiguration: Freigeben
  3. Deaktivieren Sie "DEBUG-Konstante definieren"

  4. Wählen Sie nun Konfiguration: Debug

  5. Überprüfen "DEBUG-Konstante definieren"

  6. In Ihrem Code können Sie jetzt Folgendes eingeben (DEBUG mit Großbuchstaben)

%Vor%
    
Virgar Poulsen 04.07.2016 13:28
quelle
0

undefine DEBUG und das wird diesen Teil nicht ausführen.

    
user195488 02.08.2011 12:48
quelle
0

Denken Sie auch daran, dass #if DEBUG in Großbuchstaben geschrieben sein muss. z.B. #if debug funktioniert nicht.

    
F Snyman 09.08.2014 06:01
quelle

Tags und Links