【问题标题】:Publish specific appsettings.json file on Azure在 Azure 上发布特定的 appsettings.json 文件
【发布时间】:2021-10-08 12:00:11
【问题描述】:

我想在我的发布文件夹中发布特定的 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 环境设置:

项目中的文件属性:

【问题讨论】:

    标签: azure visual-studio .net-core publishing


    【解决方案1】:

    ASP.NET Core 使用环境变量根据运行时环境配置应用行为。

    为了确定运行时环境,ASP.NET Core 从以下环境变量中读取:

    • DOTNET_ENVIRONMENT
    • ASPNETCORE_ENVIRONMENT 当 ConfigureWebHostDefaults 被调用时。

    默认的 ASP.NET Core Web 应用模板调用 配置 WebHostDefaults。 ASPNETCORE_ENVIRONMENT 值 覆盖DOTNET_ENVIRONMENT

    EnvironmentName 可以设置为任何值,但以下值由框架提供:

    • Development:launchSettings.json 文件在本地机器上将 ASPNETCORE_ENVIRONMENT 设置为 Development。
    • 分期
    • Production :如果 DOTNET_ENVIRONMENTASPNETCORE_ENVIRONMENT 尚未设置,则为默认值。

    本地机开发环境可以在项目的Properties\launchSettings.json文件中设置。 launchSettings.json 中设置的环境值会覆盖系统环境中设置的值。

    launchSettings.json 文件可以包含多个配置文件

    部署到 azure 的应用默认为生产环境。

    如果尚未设置 DOTNET_ENVIRONMENTASPNETCORE_ENVIRONMENT,则生产是默认值。

    发布应用时,您可以使用环境变量覆盖主机操作系统上的环境。当 .NET Core 启动您发布的应用程序时,它将读取该变量并加载相应的 appsettings.{environment}.json 文件。如果未设置该值,或者该环境不存在任何文件,则将应用 appsettings.json 中的设置。

    https://docs.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 上发布项目(webjob)时。 Visual Studio 不会按指定发布 appsettings.Staging.json。我必须手动包含它
    • 发布应用时,您可以使用环境变量覆盖主机操作系统上的环境。当 .NET Core 启动您发布的应用程序时,它将读取该变量并加载相应的 appsettings.{environment}.json 文件。如果未设置该值,或者该环境不存在文件,则将应用 appsettings.json 中的设置。
    • 我没明白你的意思。我说我已经设置了变量。无论如何,我在答案中添加了更多信息以使其更清晰
    • 我现在明白了,您是否也将您的 appsettings.Staging.json 添加到 Project.json 中? blog.elmah.io/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多