8

Der Versuch, die ifdef DEBUG Konstante in Visual Studio zu verwenden, für mich nicht funktioniert in einer .NET Framework 4.5, ASP.NET MVC 4.Die DEBUG Konstante in Visual Studio 2012 wird nicht aktiviert

Ich stellte sicher, :

  • die "define DEBUG konstante" für die Debug-Konfiguration in Projekteigenschaften geprüft
  • die Web.config die <compilation debug="true"...

der Code enthält Ich verwende, um Shows zu überprüfen IsDebug = false, sowohl in der IDE und in Laufzeit, obwohl ich unter der Debug-Konfiguration ausgeführt:

bool isDebug; 
#if DEBUG 
    isDebug = true; 
#else 
    isDebug = false; 
#endif 

Dies ist ein Bildschirm Kappe von Visual Studio ist, zeigte ich habe die Debug-Konfiguration aktiv, aber im Code sagt die Farbhervorhebung, dass DEBUG nicht definiert ist.

if DEBUG isDebug=true else isDebug=false

ich etwas fehlen darf!

Edit: Screen-Kappe von dem, was das Eigenschaften-Fenster zeigt für Build-Ansicht: Properties-window

+1

bitte prüfen, ob in dem Sie "Define DEBUG-Konstante", wird die Konfiguration Dropdown auf "Debug" –

+0

@RobertLevy Dank überprüft haben. Ich habe es erneut verifiziert, und es ist in der Debug-Konfiguration (innerhalb des Eigenschaftenfensters). – cederlof

+1

Was ist der _Active config_ Eigenschaftswert für Ihre Lösung? –

Antwort

8

Nein, Sie können nicht die DEBUG konstant überprüfen mit #if DEBUG in einer Datei mit der Erweiterung .cshtml

+1

Wer interessiert sich warum * warum * das ist der Fall? :) Vielleicht unterstützt der ASP.NET-Compiler keine bedingten Konstanten? – bzlm

3

Diese ist von Entwurf.

Diese Anweisungen sind nur Kompilierzeit. CSHTML (und andere ASP.NET-Seiten) werden zur Laufzeit (auf dem Webserver) kompiliert, so dass die Anweisung, die Sie in VS ausgewählt haben, sie nicht beeinflusst.

die Post CSHTML does not recognize project level compilation symbols auf Microsoft Connect Siehe

Verwandte Themen