Best way to detect a release build from a debug build? .net
So I have about 10 short css files that I use with mvc app. There are like error.css login.css etc... Just some really short css files that make updating and editing easy (At least for me). What I want is something that will optimize the if else branch and not incorporate it within the final bits. I want to do something like this
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" />
}
I'll have a msbuild task that will combine all the css files, minimize them and all that good stuff. I just need to know if there is a way to remove the if else branch in the final bits.
Solution 1:
Specifically, like this in C#:
#if (DEBUG)
Debug Stuff
#endif
C# has the following preprocessor directives:
#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
Solution 2:
if (System.Diagnostics.Debugger.IsAttached)
{
// Do this
}
else
{
// Do that
}
Solution 3:
I should had used google.
#if DEBUG
Console.WriteLine("Debug mode.")
#else
Console.WriteLine("Release mode.")
#endif
Make sure that the option "Configuration settings" -> "Build" "Define DEBUG constant" in the project properties is checked.
Solution 4:
You can try to use
HttpContext.Current.IsDebuggingEnabled
it is controlled by a node in configuration. In my opinion this is nicer solution than conditional compilation.
However if you want to be able to control based on a compilation I think you can used a ConditionalAttribute.
Regards,