从代码中检测编译调试标志的设置?

时间:2014-06-17 14:24:05

标签: asp.net

有没有简单的方法来告诉代码中当前设置的编译标记的调试属性?

为什么我要这样做?所以我可以从javascript / css的缩小/非缩小版本之间切换。以下是我尝试过的(不起作用):

public  function GetLink(byval url As String) As String
    Static isDebugEnabled As Nullable(Of Boolean)

    If isDebugEnabled Is Nothing Then
        isDebugEnabled = New System.Web.Configuration.CompilationSection().Debug
    End If

    If isDebugEnabled.Value OrElse  Regex.IsMatch(url,"\.min\.",RegexOptions.IgnoreCase) Then
        return url
    Else 
        Dim cssOrJsFileName = Regex.Match(url,"/[a-z]+\.(css|js)",RegexOptions.IgnoreCase).
            ToString().
            Replace("/",String.Empty).
            Replace(".js",String.Empty).
            Replace(".css",String.Empty)

        return  url.Replace(cssOrJsFileName,cssOrJsFileName + ".min")
    End If

End Function


   <link href="<%: getlink("/includes/styles/csssharedbundle.css") %>" rel="stylesheet" />
    <link href="<%: getlink("/includes/styles/csssite.css") %>" rel="stylesheet" />

无论如何,上面的代码总是返回缩小的文件。

1 个答案:

答案 0 :(得分:1)

不。或者至少,这不是最好的方法。

使用preprocessor directives来完成此任务。

#if DEBUG
//return non-minified
#else
//return minified
#endif

我相信它们可用并且具有与月球语言相同的语法。请查阅链接以确定。