从调试版本中检测发布版本的最佳方法是什么?.净

jde*_*tor 7 .net debugging release

所以我使用mvc app大约有10个短css文件.有像error.css login.css等...只是一些非常短的CSS文件,使更新和编辑变得容易(至少对我来说).我想要的是优化if else分支并且不将其合并到最终位中的东西.我想做这样的事情

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" /> 
}
Run Code Online (Sandbox Code Playgroud)

我将有一个msbuild任务,将结合所有的CSS文件,最小化它们和所有好东西.我只需要知道是否有一种方法可以删除最后一位中的if else分支.

Fly*_*wat 26

具体来说,就像在C#中一样:

#if (DEBUG)
   Debug Stuff
#endif
Run Code Online (Sandbox Code Playgroud)

C#具有以下预处理程序指令:

#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 
Run Code Online (Sandbox Code Playgroud)


小智 7

  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }
Run Code Online (Sandbox Code Playgroud)

  • 这告诉您(在运行时)是否附加了调试器,但是如果程序集是DEBUG(vs RELEASE)构建则不会. (5认同)

jde*_*tor 5

我应该用谷歌.

#if DEBUG
    Console.WriteLine("Debug mode.") 
#else 
    Console.WriteLine("Release mode.") 
#endif 
Run Code Online (Sandbox Code Playgroud)

确保选中项目属性中的"配置设置" - >"构建""定义DEBUG常量"选项.