Der beste Weg, einen Release-Build anhand eines Debug-Builds zu erkennen?.Netz
Frage
Ich habe also ungefähr 10 kurze CSS-Dateien, die ich mit der MVC-App verwende.Es gibt wie Fehler. CSS login.css usw. ...Nur ein paar wirklich kurze CSS-Dateien, die das Aktualisieren und Bearbeiten erleichtern (zumindest für mich).Was ich möchte, ist etwas, das den if else-Zweig optimiert und ihn nicht in die letzten Bits einbezieht.Ich möchte so etwas machen
if(Debug.Mode){
<link rel="stylesheet" type="text/css" href="error.css" />
<link rel="stylesheet" type="text/css" href="login.css" />
<link rel="stylesheet" type="text/css" href="menu.css" />
<link rel="stylesheet" type="text/css" href="page.css" />
} else {
<link rel="stylesheet" type="text/css" href="site.css" />
}
Ich werde eine MSBuild-Aufgabe haben, die alle CSS-Dateien kombiniert, minimiert und all das gute Zeug.Ich muss nur wissen, ob es eine Möglichkeit gibt, den if else-Zweig in den letzten Bits zu entfernen.
Lösung
Konkret so in C#:
#if (DEBUG)
Debug Stuff
#endif
C# verfügt über die folgenden Präprozessoranweisungen:
#if
#else
#elif // Else If
#endif
#define
#undef // Undefine
#warning // Causes the preprocessor to fire warning
#error // Causes the preprocessor to fire a fatal error
#line // Lets the preprocessor know where this source line came from
#region // Codefolding
#endregion
Andere Tipps
if (System.Diagnostics.Debugger.IsAttached)
{
// Do this
}
else
{
// Do that
}
Ich hätte Google verwenden sollen.
#if DEBUG
Console.WriteLine("Debug mode.")
#else
Console.WriteLine("Release mode.")
#endif
Stellen Sie sicher, dass die Option "Konfigurationseinstellungen" -> "Build" "Debug -Konstante" in den Projekteigenschaften überprüft wird.
Sie können versuchen, es zu verwenden
HttpContext.Current.IsDebuggingEnabled
Es wird von einem Knoten in der Konfiguration gesteuert.Meiner Meinung nach ist dies eine bessere Lösung als die bedingte Kompilierung.
Wenn Sie jedoch in der Lage sein möchten, basierend auf einer Zusammenstellung zu steuern, können Sie meiner Meinung nach eine verwenden BedingtesAttribut.
Grüße,
Compiler-Konstanten.Ich erinnere mich nicht an die C#-Syntax, aber so mache ich es in VB:
#If CONFIG = "Debug" Then
'do somtehing
#Else
'do something else
#EndIf