NETCORE_ENVIRONMENT=Production運行控制臺應用程式時環境變數有什么意義嗎?
在 asp.net 核心中有ASPNETCORE_ENVIRONMENT=Production- (據我所知)將應用程式更改為使用appsettings.Production.json.
是否NETCORE_ENVIRONMENT存在,使用它的效果如何?
(大約一年前我在安裝 5.0 應用程式時在我的腳本中發現了它,現在我在 Google 上找不到任何參考資料)
uj5u.com熱心網友回復:
TL;DRDOTNET_ENVIRONMENT由HostBuilder.NET 5 和 6(可能早在 3.x)中的控制臺應用程式使用。除此之外,它只是一個常見的環境變數,如果您想執行以下操作,您還可以使用它來確定環境:
if (Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") == "Development")
{
builder.AddUserSecrets<Program>();
}
我相信 .NET 5 & 6ASPNETCORE_ENVIRONMENT并且DOTNET_ENVIRONMENT是有意義的環境變數。如果兩者都沒有設定,則默認為Production。當從 ASP.NET Core 運行時,如果它們都存在,WebApplication.CreateBuilder將更喜歡ASPNETCORE_ENVIRONMENT。
另一邊注,我認為默認情況下不會設定任何值。我剛剛檢查了我的本地 Ubuntu 服務器,該服務器上安裝了全新的 .NET 6,并且這些環境變數不是由安裝程式創建的。
以下用途HostBuilder和HostingEnvironment應反映來自 的值DOTNET_ENVIRONMENT。它仍然感覺不直觀,因為我必須添加該prefix: "DOTNET_"部分。
class Program
{
static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureHostConfiguration(config =>
{
config.AddEnvironmentVariables(prefix: "DOTNET_");
});
builder.ConfigureAppConfiguration((context, config) =>
{
Console.WriteLine($"HostBuilder Environment in ConfigureAppConfiguration: {context.HostingEnvironment.EnvironmentName}");
})
.UseDefaultServiceProvider((context, options) =>
{
Console.WriteLine($"HostBuilder Environment in UseDefaultServiceProvider: {context.HostingEnvironment.EnvironmentName}");
});
builder.Build();
}
}
有關的:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-6.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365935.html
