.Net 5中的调试设置

时间:2015-02-11 21:11:41

标签: asp.net-core asp.net-core-mvc

随着web.config中的调试设置消失,在.Net 5(MVC 6项目)中打开和关闭调试以及以下内容的等价物(如果有)是什么?

#define DEBUG
// ...
#if DEBUG
    Console.WriteLine("Debug version");
#endif

2 个答案:

答案 0 :(得分:7)

在项目json文件中,您需要添加:

"frameworks": {
    "aspnet50": {
        "compilationOptions": {
            "define": [ "WHATEVER_YOU_WANT_TO_CALL_IT" ]
        }
    },
    "aspnetcore50": {
        "compilationOptions": {
            "define": [ "WHATEVER_YOU_WANT_TO_CALL_IT" ]
        }
    }

然后在您的代码中使用它如下:

#if WHATEVER_YOU_WANT_TO_CALL_IT
    .. your code..
#endif

WHATEVER_YOU_WANT_TO_CALL_IT可以= DEBUG或其他任何内容。

答案 1 :(得分:5)

<强>更新

自写这个答案以来,我了解到.Net Core中的新方法是使用环境变量。您可以找到文章here和更多信息here

您可以在debug下的项目属性中设置环境变量。在使用DI注入IHostingEnvironment

之后,代码看起来就像
if (env.IsDevelopment())
{
    //...
}

END UPDATE

@user2095880的答案有效且有效。但是,您可能需要一个不需要将project.json更改为生产的解决方案。

#if DEBUG
            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello DEBUG CODE!");
            });
#else
            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello LIVE CODE!");
            });
#endif

如果您在Debug或其他方面,它会检查您的解决方案配置(仍然可以在.Net 5中运行)。如果您的解决方案配置设置为Debug,则第一组代码将运行。如果选择Release(或其他任何内容),则第二个代码部分将运行。请参阅下图,了解从Debug到Release的下拉列表。

enter image description here