2015-02-11 9 views
6

Mit der Debug-Einstellung in der web.config, welche Einstellung aktiviert und deaktiviert Debug und was ist das Äquivalent (falls vorhanden) für die folgenden in. Net 5 (MVC 6 Projekt)?Debug Einstellung in .Net 5

#define DEBUG 
// ... 
#if DEBUG 
    Console.WriteLine("Debug version"); 
#endif 
+0

Die web.config enthält keine #DEBUG. #DEBUG ist eine Compiler-Direktive, keine web.config-Einstellung. Kannst du deine Frage anders formulieren? – Igor

+0

@Igor - Es gibt keine Web-Konfiguration in vNext-Projekten –

+0

Ich stehe behoben, es ist möglich, in der 4.5-Version von .NET in der web.config im Abschnitt Compiler-Attribut CompilerOptions zu definieren. – Igor

Antwort

4

UPDATE

Da diese Antwort schreiben ich, dass die neue Art und Weise in .Net-Core gelernt haben, ist Umgebungsvariablen zu verwenden. Sie finden einen Artikel here und weitere Informationen here.

Sie können die Umgebungsvariable in Ihren Projekteigenschaften unter debug einstellen. Der Code würde aussehen wie nach DI mit IHostingEnvironment

if (env.IsDevelopment()) 
{ 
    //... 
} 

END UPDATE von @user2095880

Die Antwort zu injizieren ist gültig und funktioniert. Möglicherweise möchten Sie jedoch eine Lösung, die Sie nicht ändern müssen, um die product.json in die Produktion zu gehen.

#if DEBUG 
      app.Run(async (context) => 
      { 
       await context.Response.WriteAsync("Hello DEBUG CODE!"); 
      }); 
#else 
      app.Run(async (context) => 
      { 
       await context.Response.WriteAsync("Hello LIVE CODE!"); 
      }); 
#endif 

Dies überprüft Ihre Lösungskonfiguration (funktioniert immer noch in .Net 5), wenn Sie in Debug oder etwas anderes sind. Wenn Ihre Lösungskonfiguration auf Debug festgelegt ist, wird der erste Codecode ausgeführt. Wenn Sie Release (oder etwas anderes) auswählen, wird der zweite Codeabschnitt ausgeführt. Sehen Sie sich das Bild unten an, um das Drop-down-Menü von Debug zu Release zu wechseln.

enter image description here

+0

Der Unterschied hier ist, dass die Pre-Prozessor-Direktiven die Zielumgebung bei der Kompilierung bestimmen Zeit. Die Lösung, die die "IHostingEnvironment" einbezieht, bestimmt die Umgebung zur Laufzeit. Sie sind beide gültige Ansätze, aber für verschiedene Probleme. – Matt

7

in Ihrem Projekt JSON-Datei, müssen Sie hinzufügen:

"frameworks": { 
    "aspnet50": { 
     "compilationOptions": { 
      "define": [ "WHATEVER_YOU_WANT_TO_CALL_IT" ] 
     } 
    }, 
    "aspnetcore50": { 
     "compilationOptions": { 
      "define": [ "WHATEVER_YOU_WANT_TO_CALL_IT" ] 
     } 
    } 

dann in Ihrem Code Sie es verwenden, wie folgt:

#if WHATEVER_YOU_WANT_TO_CALL_IT 
    .. your code.. 
#endif 

wo WHATEVER_YOU_WANT_TO_CALL_IT kann = DEBUG oder sonst was auch immer .

+0

Ist es möglich, für einzelnes Framework zwei verschiedene Konfigurationen zu haben? – dotnetstep

+0

Wenn ich richtig verstehe, sehe ich nicht warum, aber ich habe es noch nicht getestet. –

+0

funktionierte nicht in asp.net Core 1.0 – Mostafa

Verwandte Themen