使用 ef core,可以使一切正常工作并运行 dotnet ef 迁移命令行工具,但程序.cs需要该方法
public static IHostBuilder CreateHostBuilder(string[] args)
唯一不理想的是将数据库设置存储在开发 json 文件中,然后必须在该方法中对开发 json 文件名进行硬编码,或者将数据库连接详细信息硬编码到该方法中。检查时
context.HostingEnvironment.IsDevelopment() //always returns false
它永远不会正确或设置不正确,因此我们不能使用上下文。HostingEnvironment.EnvironmentName 作为变量。CreateHostBuilder 方法中有没有办法加载正确的应用程序设置 json 文件并配置/设置用于运行 ef 迁移命令行工具与硬编码的环境?
是的,您有几个选项来设置托管环境。
您可以设置DOTNET_ENVIRONMENT
环境变量的值。这适用于所有类型的应用程序。或者,您可以设置环境变量ASPNETCORE_ENVIRONMENT
因为这会在调用.ConfigureWebHostDefaults
时覆盖DOTNET_ENVIRONMENT
。
另一种选择是在项目的launchSetting.json
中设置ASPNETCORE_ENVIRONMENT
值。
虽然您可以为这些环境变量提供任何值,但框架提供了以下值:"开发"、"暂存"和"生产"。
您可以在在 Core 中使用多个环境文档中找到有关此内容的更多信息 ASP.NET。