gpt4 book ai didi

c# - launchSettings.json 和 appSettings.json 是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 23:47:03 30 4
gpt4 key购买 nike

在创建新的 .NET Core 项目时,Rider 为我生成了 launchSettings.json , appSettings.jsonappSettings.Development.json文件。 .NET Core 似乎能够自行处理这些配置,我无需自己编写任何代码。这些文件都不会被版本控制忽略。

.NET Core 对我来说是新的,我只知道 Node 后端。在节点中,我将安装 dotenv打包,新建一个.env内容为 PORT=3000 的文件, 添加 .env文件到我的 .gitignore 并通过 process.env.PORT 访问端口在我的代码中。这些配置值只对我有用,因为它们不在版本控制范围内。

比较方法有一些我不明白的事情:

  • .env文件应该远离版本控制,但这些文件不应该吗?敏感信息呢?还是我应该手动将它们添加到 .gitignore 中?
  • 取自 here明确建议避免
    多个配置文件。

    In a twelve-factor app, env vars are granular controls, each fully orthogonal to other env vars. They are never grouped together as “environments”, but instead are independently managed for each deploy. This is a model that scales up smoothly as the app naturally expands into more deploys over its lifetime.



    那么删除appSettings.Development.json不是更好吗?
    归档并坚持使用 appSettings.json ?
  • launchSettings.json包含有关应用程序的信息
    配置(例如 "applicationUrl":
    "https://localhost:5001;http://localhost:5000",
    )并被拾取
    通过版本控制。如果我想更改端口或其他
    设置?既然你知道这是一个 json 文件,我将无法添加
    环境变量的占位符,例如http://{{baseUrl}}:{{port}} .
    如何处理?
  • launchSettings.json个人资料有 environmentVariables具有初始值的部分 "ASPNETCORE_ENVIRONMENT":
    "Development"
    但是appSettings.json的目的是什么?然后?

  • 我认为事情比看起来容易,但这个概念让我感到困惑。有人介意解释一下吗?

    最佳答案

    虽然我不知道 .env 文件,但我对其余文件的回答如下:

    当您拥有 appsettings.json 和 appsettings.development.json 并在 ASPNETCORE_ENVIRONMENT 中指定您正在运行开发时,appsettings.development.json 中的设置应覆盖 appsettings.json 中的设置,而未覆盖的设置将从 appsettings 中读取。 json。
    但是,我几乎总是使用仅包含 {} 的 appsettings.json,然后使用 appsettings.production.json 和 appsettings.development.json 来明确说明哪些设置在哪里。

    关于安全性,我认为其目的是将 secret 添加到 CD 系统中,例如 Octopus deploy 或 teamcity,然后在部署解决方案时将占位符 secret 交换为真实 secret 。

    Launchsettings.json 只涉及在本地运行项目而不发布,无论是通过 Rider 还是 Visual Studio,它都会告诉系统是否启动浏览器以及在哪个 url 上找到应用程序,端口只是默认值,可以在代码中覆盖,然后您必须匹配启动设置中新选择的端 Eloquent 能按预期进行调试。

    我希望这是有道理的。

    关于c# - launchSettings.json 和 appSettings.json 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079870/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com