ASP.NET 核心仅部署适用的应用程序设置。{EnvironmentName}。json
ASP.NET Core deploy only applicable appsettings.{EnvironmentName}.json
我完成了第一个概念验证 ASP.NET 核心应用程序,我有 5 个应用程序设置文件:
- appsettings.json
- appsettings.Development.json
- appsettings.Test.json
- appsettings.Staging.json
- appsettings.Production.json
我是 运行 IIS 中的应用程序,所以我实际上有 web.config 个文件,这样我就可以在每个应用程序的基础上设置 ASPNETCORE_ENVIRONMENT
环境变量:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<aspNetCore processPath="dotnet" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development"></environmentVariable>
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
我有 4 个 web.config 转换,所以我可以从 Visual studio 发布,它会为每个环境设置正确的环境变量值。
当我发布到每个环境时,尽管它发布了所有应用程序设置文件。是否可以让它在根 appsettings.json 和适用环境特定的上发布,但忽略其他的?
不,这不可能。 ASP.NET 核心不像 ASP.NET。在ASP.NET,你真的是为了环境发表的;如果您想切换到不同的环境,则需要重新发布。 ASP.NET 核心已针对 所有 环境发布。可以选取相同的已发布应用程序并将其移动到任何环境,而无需更改。实际环境一般是外部化的,比如via和环境变量,可以随心所欲地改变,不需要部署新的代码。这实际上是ASP.NET核心的特征。
现在,您处理环境变量的方式确实在某种程度上使其依赖于发布,但这只是修改 web.config,它本身仅在部署到 IIS 时才有意义。 ASP.NET Core 本身不关心或使用 web.config,老实说甚至不关心或使用发布配置。
我完成了第一个概念验证 ASP.NET 核心应用程序,我有 5 个应用程序设置文件:
- appsettings.json
- appsettings.Development.json
- appsettings.Test.json
- appsettings.Staging.json
- appsettings.Production.json
我是 运行 IIS 中的应用程序,所以我实际上有 web.config 个文件,这样我就可以在每个应用程序的基础上设置 ASPNETCORE_ENVIRONMENT
环境变量:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<aspNetCore processPath="dotnet" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development"></environmentVariable>
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
我有 4 个 web.config 转换,所以我可以从 Visual studio 发布,它会为每个环境设置正确的环境变量值。
当我发布到每个环境时,尽管它发布了所有应用程序设置文件。是否可以让它在根 appsettings.json 和适用环境特定的上发布,但忽略其他的?
不,这不可能。 ASP.NET 核心不像 ASP.NET。在ASP.NET,你真的是为了环境发表的;如果您想切换到不同的环境,则需要重新发布。 ASP.NET 核心已针对 所有 环境发布。可以选取相同的已发布应用程序并将其移动到任何环境,而无需更改。实际环境一般是外部化的,比如via和环境变量,可以随心所欲地改变,不需要部署新的代码。这实际上是ASP.NET核心的特征。
现在,您处理环境变量的方式确实在某种程度上使其依赖于发布,但这只是修改 web.config,它本身仅在部署到 IIS 时才有意义。 ASP.NET Core 本身不关心或使用 web.config,老实说甚至不关心或使用发布配置。