从调试版本中检测发行版本的最佳方法? 。网

时间:2020-03-05 18:49:43  来源:igfitidea点击:

所以我有大约10个短的css文件,可以与mvc应用程序一起使用。
有像
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" /> 
}

我将执行一个msbuild任务,该任务将合并所有css文件,将它们和所有这些好东西最小化。我只需要知道是否有一种方法可以删除最后几位中的if else分支。

解决方案

回答

我应该使用谷歌。

#if DEBUG
    Console.WriteLine("Debug mode.") 
#else 
    Console.WriteLine("Release mode.") 
#endif

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

回答

编译器常量。我不记得Csyntax,但这是我在VB中的处理方式:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf

回答

具体来说,在C#中是这样的:

#if (DEBUG)
   Debug Stuff
#endif

遵循以下预处理程序指令:

#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

回答

if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }