8

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

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

4

5 回答 5

26

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

#if (DEBUG)
   Debug Stuff
#endif

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 
于 2008-09-08T23:40:44.790 回答
7
  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }
于 2008-11-18T15:52:05.233 回答
6

我应该使用谷歌。

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

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

于 2008-09-08T23:09:59.903 回答
4

你可以尝试使用

HttpContext.Current.IsDebuggingEnabled

它由配置中的节点控制。在我看来,这是比条件编译更好的解决方案。

但是,如果您希望能够基于编译进行控制,我认为您可以使用ConditionalAttribute

问候,

于 2011-10-14T10:32:02.493 回答
1

编译器常量。我不记得 C# 语法,但这是我在 VB 中的做法:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
于 2008-09-08T23:10:30.027 回答