关于调试:从调试版本中检测发行版本的最佳方法? 。净

关于调试:从调试版本中检测发行版本的最佳方法? 。净

Best way to detect a release build from a debug build? .net

因此,我有大约10个简短的css文件,可与mvc应用程序一起使用。
有像
error.css
login.css
等等...
仅有一些非常短的CSS文件,这些文件使更新和编辑变得容易(至少对我而言)。 我想要的是可以优化if else分支,而不将其合并到最终位中的东西。 我想做这样的事情

1
2
3
4
5
6
7
8
9
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分支。


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

1
2
3
#if (DEBUG)
   Debug Stuff
#endif

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

1
2
3
4
5
6
7
8
9
10
11
#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

1
2
3
4
5
6
7
8
  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }

我应该使用谷歌。

1
2
3
4
5
#if DEBUG
    Console.WriteLine("Debug mode.")
#else
    Console.WriteLine("Release mode.")
#endif

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


您可以尝试使用

1
HttpContext.Current.IsDebuggingEnabled

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

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

问候,


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

1
2
3
4
5
#If CONFIG ="Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf


推荐阅读

    linux命令添加文件?

    linux命令添加文件?,工作,简介,数据,系统,文件,命令,操作,文件名,内容,终端,l

    linux文件输入命令?

    linux文件输入命令?,工作,系统,地址,信息,工具,位置,命令,设备,发行,首开,lin

    文件备份命令linux?

    文件备份命令linux?,网站,系统,设备,文件,软件,网络,工具,环境,数据,地址,lin

    linux遍历文件命令?

    linux遍历文件命令?,系统,数据,工具,文件,平台,信息,百度,位置,时间,适当,lin

    linux命令查看小文件?

    linux命令查看小文件?,系统,档案,文件夹,标准,软件,单位,文件,命令,大小,内

    linux文件中剪切命令?

    linux文件中剪切命令?,位置,系统,工作,命令,发行,连续,标准,终端,文件,目录,l

    linux存储文件命令?

    linux存储文件命令?,系统,地址,工作,命令,软件,电脑,标准,底部,信息,文件,lin

    linux保存命令文件?

    linux保存命令文件?,系统,状态,命令,文件,第一,管理,电脑,模式,编辑,终端,lin

    linux私有文件命令?

    linux私有文件命令?,系统,工作,工具,命令,设备,文件,目录,位置,不了,情况,Lin

    删除linux文件命令?

    删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选

    linux文件录入命令?

    linux文件录入命令?,系统,命令,网络,标准,时间,密码,名字,管理,文件,文件夹,L

    文件复制命令linux?

    文件复制命令linux?,系统,地址,文件,目录,位置,工具,命令,目标,文件名,源文

    linux命令移除文件夹?

    linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目

    linux文件倒序命令?

    linux文件倒序命令?,地址,工作,管理,标准,命令,基础,系统,数据,最新,代码,lin

    linux使用命令的方法?

    linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,

    在linux文件后加命令?

    在linux文件后加命令?,系统,工作,命令,工具,电脑,基础,管理,情况,第一,简介,L

    linux命令删除文件夹?

    linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目

    linux命令看文件编码?

    linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,L

    linux编辑文件的命令?

    linux编辑文件的命令?,系统,地址,工作,状态,命令,电脑,信息,管理,目录,终端,l

    linux命令行关掉文件?

    linux命令行关掉文件?,地址,状态,工作,系统,信息,命令,名字,电脑,编辑,文件,l