我想在我的发布文件夹中发布特定的 appsettings json。
在我的 .csproj 文件中,我有这个
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Update="appsettings.Staging.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Settings.job">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
我有两个发布配置文件(本地/Azure)。
在我的本地文件夹中,一切正常
但是当我在 Azure 上发布时,我无法获取正确的文件:
我做错了什么?
更多信息:
Azure 环境设置:
项目中的文件属性:
最佳答案
ASP.NET Core 使用环境变量根据运行时环境配置应用程序行为。
为了确定运行时环境,ASP.NET Core 从以下环境变量中读取:
DOTNET_ENVIRONMENT
ASPNETCORE_ENVIRONMENT
当调用ConfigureWebHostDefaults时。
默认的 ASP.NET Core Web 应用模板调用
配置WebHostDefaults。 ASPNETCORE_ENVIRONMENT
值
覆盖DOTNET_ENVIRONMENT
。
EnvironmentName 可以设置为任意值,但以下值由框架提供:
- 开发:launchSettings.json 文件将
ASPNETCORE_ENVIRONMENT
设置为本地计算机上的开发。 - 分期
- 生产:如果未设置
DOTNET_ENVIRONMENT
和ASPNETCORE_ENVIRONMENT
,则为默认值。
native 开发的环境可以在项目的Properties\launchSettings.json文件中设置。 launchSettings.json 中设置的环境值会覆盖系统环境中设置的值。
launchSettings.json 文件可以包含多个配置文件
部署到 azure 的应用程序默认为生产环境。
如果尚未设置 DOTNET_ENVIRONMENT
和 ASPNETCORE_ENVIRONMENT
,则 Production 为默认值。
发布应用程序时,您可以使用环境变量覆盖主机操作系统上的环境。当 .NET Core 启动已发布的应用程序时,它将读取该变量并加载适当的 appsettings.{environment}.json 文件。如果未设置该值,或者该环境不存在文件,则将应用 appsettings.json 中的设置。
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-3.1
How to use publish profile to change a value is appsettings.json
关于azure - 在 Azure 上发布特定的 appsettings.json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68633334/