【发布时间】:2023-01-24 22:08:36
【问题描述】:
我正在开发一个 .NET Core (.NET 6) WPF 应用程序,我在检测开发环境(开发或生产)时遇到问题。
当我的 WPF 应用程序启动时,我正在创建一个 IHost,以便使用依赖注入和所有其他 .NET Core 好东西,如下所示:
public partial class App : Application
{
private readonly IHost host;
public App()
{
host = Host.CreateDefaultBuilder()
.UseContentRoot(CoreConstants.MaintenanceToolBinFolder)
.ConfigureServices((context, services) =>
{
var configuration = context.Configuration;
//...
})
.Build();
}
}
现在,在 ASP.net Core 网络应用程序中,这将自动读取 ASPNETCORE_ENVIRONMENT 环境变量并使用它来确定当前环境。然而,这里完全忽略了这一点,环境始终是“Production”。
在这种情况下检测环境的正确方法是什么?我应该手动读取变量并设置环境,还是有更“正确”的方法?
【问题讨论】:
-
在开发过程中,您是否总是在 visual studio 中以调试模式运行。
-
在桌面应用程序中执行此操作的通常方法是提供不同的配置,这在上面的链接中有所介绍。我怀疑它是否已更改,但桌面构建工具中未包含您在 asp.net 中获得的配置覆盖。您还可以检测是否附加了调试器并将其视为开发。