La meilleure façon de détecter une version de version à partir d’une version de débogage ?.filet
Question
J'ai donc environ 10 fichiers CSS courts que j'utilise avec l'application mvc.Il y a comme une erreur.css login.css etc ...Juste quelques fichiers CSS très courts qui facilitent la mise à jour et l'édition (du moins pour moi).Ce que je veux, c'est quelque chose qui optimisera la branche if else et ne l'incorporera pas dans les bits finaux.Je veux faire quelque chose comme ça
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" />
}
J'aurai une tâche msbuild qui combinera tous les fichiers CSS, les minimisera et toutes ces bonnes choses.J'ai juste besoin de savoir s'il existe un moyen de supprimer la branche if else dans les derniers bits.
La solution
Plus précisément, comme ceci en C# :
#if (DEBUG)
Debug Stuff
#endif
C# a les directives de préprocesseur suivantes :
#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
Autres conseils
if (System.Diagnostics.Debugger.IsAttached)
{
// Do this
}
else
{
// Do that
}
J'aurais dû utiliser Google.
#if DEBUG
Console.WriteLine("Debug mode.")
#else
Console.WriteLine("Release mode.")
#endif
Assurez-vous que l'option "Paramètres de configuration" -> "build" "Définissez la constante de débogage" dans les propriétés du projet est vérifiée.
Vous pouvez essayer d'utiliser
HttpContext.Current.IsDebuggingEnabled
il est contrôlé par un nœud en configuration.À mon avis, c'est une solution plus intéressante que la compilation conditionnelle.
Cependant, si vous voulez pouvoir contrôler sur la base d'une compilation, je pense que vous pouvez utiliser un Attribut conditionnel.
Salutations,
Constantes du compilateur.Je ne me souviens pas de la syntaxe C#, mais voici comment je procède en VB :
#If CONFIG = "Debug" Then
'do somtehing
#Else
'do something else
#EndIf