首页 > 解决方案 > launchSettings.json 和 appSettings.json 是如何工作的?

问题描述

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

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

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

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

标签: c#asp.net-core.net-core

解决方案


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

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

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

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

我希望这是有道理的。


推荐阅读