【问题标题】:Best way to detect a release build from a debug build? .net从调试版本中检测发布版本的最佳方法? 。网
【发布时间】:2010-09-08 05:33:18
【问题描述】:

所以我有大约 10 个与 mvc 应用程序一起使用的短 css 文件。 有像 错误.css 登录.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 分支。

【问题讨论】:

标签: .net debugging release


【解决方案1】:

你可以尝试使用

HttpContext.Current.IsDebuggingEnabled

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

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

问候,

【讨论】:

    【解决方案2】:

    我应该使用谷歌。

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

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

    【讨论】:

      【解决方案3】:
        if (System.Diagnostics.Debugger.IsAttached)
        {
                 // Do this
        }
        else
        {
                  // Do that
        }
      

      【讨论】:

      • 这会告诉您(在运行时)是否附加了调试器,但如果程序集是 DEBUG(与 RELEASE)构建,则不会。
      【解决方案4】:

      具体来说,在 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 
      

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 2010-09-08
          • 1970-01-01
          • 2010-10-27
          • 2020-08-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多