为什么 .net 在 运行 时通过 visual studio 代码加载 prod json 值?
Why does .net load the prod json values when running via visual studio code?
我创建了一个新的 .net web api 项目。
有 2 个 json 设置文件 - 1 个用于开发,另一个用于生产。
我将 key1 添加到 dev json 文件并将 key2 添加到 prod json 文件。
在我的 program.cs 中,我有以下代码:
builder.Configuration["key1"]
builder.Configuration["key2"]
即使我通过 visual studio 代码拥有 运行 项目,为什么它从 prod json 文件加载值?
环境不受您运行 应用程序的影响。它是通过检查 DOTNET_ENVIRONMENT
或 ASPNETCORE_ENVIRONMENT
环境变量来确定的。您可以配置 IDE 或编辑器以在启动项目时将这些环境变量设置为特定值,但这与打开控制台并设置环境变量没有什么不同。
这在 Used multiple environments in ASP.NET Core 中有所描述,但实际上适用于任何使用通用主机的 .NET Core 应用程序。
不同的 IDE 在启动应用程序时使用不同的方式来指定调试配置文件和设置环境变量。
在Visual Studio中,您可以在“调试属性”页面中指定环境变量。这些值存储在 Properties\launchSettings.json
文件中。 Development and launchsettings.json.
中对此进行了描述
JetBrains Rider 同时支持 launchSettings.json
和它自己的配置文件。
Visual Studio 另一方面,代码将 launch configurations 存储在 .vscode
文件夹中的 launch.json
文件中。它还可以通过在 launch.json
.
中设置属性来使用 launchSettings.json
Launch.json attributes 中描述了可用的属性。 env
属性允许指定环境变量。
文章 Configuring launch.json for C# debugging 描述了如何使用该文件启动浏览器、导航到特定 URL、设置环境变量等:
"env": {
"DOTNET_ENVIRONMENT":"Development"
}
同一文档通过设置 launchSettingsProfile
属性显示 how to use launchSettings.json
in VS Code。
如果您在 launchSettings.json
中有 Development
个人资料:
{
"profiles": {
"Development": {
"commandName": "Project",
"environmentVariables": {
"DONTET_ENVIRONMENT":"Development"
}
}
}
}
您可以通过在 launch.json
中指定 launchSettingsProfile
来在 VS Code 中使用它:
"launchSettingsProfile": "Development"
我创建了一个新的 .net web api 项目。
有 2 个 json 设置文件 - 1 个用于开发,另一个用于生产。
我将 key1 添加到 dev json 文件并将 key2 添加到 prod json 文件。
在我的 program.cs 中,我有以下代码:
builder.Configuration["key1"]
builder.Configuration["key2"]
即使我通过 visual studio 代码拥有 运行 项目,为什么它从 prod json 文件加载值?
环境不受您运行 应用程序的影响。它是通过检查 DOTNET_ENVIRONMENT
或 ASPNETCORE_ENVIRONMENT
环境变量来确定的。您可以配置 IDE 或编辑器以在启动项目时将这些环境变量设置为特定值,但这与打开控制台并设置环境变量没有什么不同。
这在 Used multiple environments in ASP.NET Core 中有所描述,但实际上适用于任何使用通用主机的 .NET Core 应用程序。
不同的 IDE 在启动应用程序时使用不同的方式来指定调试配置文件和设置环境变量。
在Visual Studio中,您可以在“调试属性”页面中指定环境变量。这些值存储在
中对此进行了描述Properties\launchSettings.json
文件中。 Development and launchsettings.json.JetBrains Rider 同时支持
launchSettings.json
和它自己的配置文件。Visual Studio 另一方面,代码将 launch configurations 存储在
中设置属性来使用.vscode
文件夹中的launch.json
文件中。它还可以通过在launch.json
.launchSettings.json
Launch.json attributes 中描述了可用的属性。 env
属性允许指定环境变量。
文章 Configuring launch.json for C# debugging 描述了如何使用该文件启动浏览器、导航到特定 URL、设置环境变量等:
"env": {
"DOTNET_ENVIRONMENT":"Development"
}
同一文档通过设置 launchSettingsProfile
属性显示 how to use launchSettings.json
in VS Code。
如果您在 launchSettings.json
中有 Development
个人资料:
{
"profiles": {
"Development": {
"commandName": "Project",
"environmentVariables": {
"DONTET_ENVIRONMENT":"Development"
}
}
}
}
您可以通过在 launch.json
中指定 launchSettingsProfile
来在 VS Code 中使用它:
"launchSettingsProfile": "Development"