Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Blazor客户端应用程序中配置每环境appsettings.json配置?_C#_Blazor_Blazor Client Side_.net 5 - Fatal编程技术网

C# 如何在Blazor客户端应用程序中配置每环境appsettings.json配置?

C# 如何在Blazor客户端应用程序中配置每环境appsettings.json配置?,c#,blazor,blazor-client-side,.net-5,C#,Blazor,Blazor Client Side,.net 5,我在blazor中有一个连接到服务器的客户端应用程序。当我在dev中的本地计算机上运行它时,服务器的主机名是dev.someurl.com 如果是live,则是live.someurl.com 我已经设置了IConfiguration的注入,它自动加载appsettings.Development.json,但是我无法更改环境。文档说发布时将使用appsettings.Production.json,但事实并非如此,因为我已经在Release build下发布了它,并看到了这一点 该环境似乎是只

我在blazor中有一个连接到服务器的客户端应用程序。当我在dev中的本地计算机上运行它时,服务器的主机名是dev.someurl.com

如果是live,则是live.someurl.com

我已经设置了
IConfiguration
的注入,它自动加载appsettings.Development.json,但是我无法更改环境。文档说发布时将使用appsettings.Production.json,但事实并非如此,因为我已经在Release build下发布了它,并看到了这一点

该环境似乎是只读的。使用signalr.net核心应用程序,我可以做到:

return Host.CreateDefaultBuilder(args).UseEnvironment(environmentName)

但是,对于blazor客户端应用程序,您可以做到以下几点:

var builder=WebAssemblyHostBuilder.CreateDefault(args)

生成器允许您访问
HostenEnvironment
,但您不能修改它

appsettings配置文件的读取是全自动的,内置有以下代码:

builder.Services.AddSingleton(provider =>
{
    var config = provider.GetService<IConfiguration>();
    return config;
});
builder.Services.AddSingleton(提供者=>
{
var config=provider.GetService();
返回配置;
});
你知道我该怎么做吗


作为blazor客户端应用程序,您显然可以在标题中设置环境,但我不知道如何通过编程实现这一点。欢迎想法。

环境名称由/u framework/Blazor.boot.json请求的Blazor环境响应头定义。显然,您可以将其作为
放入
index.html
中,但不清楚如何使其动态。如果将其放入index.html中,则它不是动态的。否则,它是.net服务器环境动态的,如中所示,当我构建项目时,我希望它根据我的配置进行设置,例如调试/发布,以便我可以轻松发布它,并让它使用不同的配置,而不是像这样工作,环境由主机定义。在我看来,在构建时定义运行环境不是一个好的实践。您应该为您的登台、UAT和/或产品部署一个发布版本。环境名称由/u framework/Blazor.boot.json请求的Blazor环境响应头定义。显然,您可以将其作为
放入
index.html
中,但不清楚如何使其成为动态的。如果将其放入index.html中,则它不是动态的。否则,它是.net服务器环境动态的,如中所示,当我构建项目时,我希望它根据我的配置进行设置,例如调试/发布,以便我可以轻松发布它,并让它使用不同的配置,而不是像这样工作,环境由主机定义。在我看来,在构建时定义运行环境不是一个好的实践。您应该将发布版本部署到暂存、UAT和/或生产环境中