.Net 5 中的调试设置
Debug Setting in .Net 5
随着 web.config 中的调试设置消失,什么设置打开和关闭调试以及 .Net 5(MVC 6 项目)中以下设置的等效项(如果有)是什么?
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif
在你的项目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 或其他任何东西。
更新
自从写下这个答案后,我了解到 .Net Core 中的新方法是使用环境变量。您可以找到一篇文章 here and more info here.
您可以在调试下的项目属性中设置环境变量。使用 DI 注入 IHostingEnvironment
后的代码看起来像
if (env.IsDevelopment())
{
//...
}
更新结束
的回答有效且有效。但是,您可能需要一个无需更改 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
这会检查您的解决方案配置(在 .Net 5 中仍然有效)如果您处于调试或其他状态。如果您的解决方案配置设置为调试,则第一组代码将 运行。如果你 select 发布(或其他任何东西),第二个代码部分将 运行。请参阅下图,将下拉菜单从“调试”更改为“发布”。
随着 web.config 中的调试设置消失,什么设置打开和关闭调试以及 .Net 5(MVC 6 项目)中以下设置的等效项(如果有)是什么?
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif
在你的项目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 或其他任何东西。
更新
自从写下这个答案后,我了解到 .Net Core 中的新方法是使用环境变量。您可以找到一篇文章 here and more info here.
您可以在调试下的项目属性中设置环境变量。使用 DI 注入 IHostingEnvironment
if (env.IsDevelopment())
{
//...
}
更新结束
#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
这会检查您的解决方案配置(在 .Net 5 中仍然有效)如果您处于调试或其他状态。如果您的解决方案配置设置为调试,则第一组代码将 运行。如果你 select 发布(或其他任何东西),第二个代码部分将 运行。请参阅下图,将下拉菜单从“调试”更改为“发布”。