我正在使用.NET Core 3.0 ASP.net,而我的appsettings.json看起来像这样
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"Test":false
}
有什么方法可以配置某个发布配置文件(pubxml)来将Test的值更改为true或false?
答案 0 :(得分:0)
是的,这很容易。当前,您很可能使用Debug
解决方案配置进行本地开发。假设您也有Release
作为解决方案配置,并希望在使用发布配置文件发布到Azure时更改某些设置。
假设您使用的是.NET Core 3.1(也适用于2.x,但语法不同),则可以执行以下代码:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseEnvironment(Environment);
});
public static string Environment
{
get
{
string environmentName;
#if DEBUG
environmentName = "development";
#elif RELEASE
environmentName = "production";
#endif
return environmentName;
}
}
还要创建一个appsettings.product.json
,您可以在其中覆盖特定的值。
使用发布配置文件时,只需在发布对话框中选择Release
作为解决方案配置。这样,您的应用程序将加载appsettings.json
的默认值,这些默认值将被appsettings.production.json
中的值覆盖。
您可以在docs中阅读更多详细信息。