当我在本地时,如何配置 appsettings.json 以使用与项目不同的连接字符串

how configure appsettings.json to have a different connection string from the project when I'm in local

我在 API 中使用 .NET 5,在 appsettings.json 中我有以下内容:

我正在处理的项目有一个这样的连接字符串

"DefaultConnection": "Data Source=someserverAWS.com; initial catalog=ProjectDb; Persist Security Info=True; User Id=lorenz; Password=54321 ; MultipleActiveResultSets=True"

但我无权访问该服务器,因此为了使代码在本地为我工作,我必须每次都将其更改(例如,我正在开发一个新功能)到这样的东西

"DefaultConnection": "Data Source=localhost;initial catalog=ProjectDb;Persist Security Info=True;User Id=sa;Password=12345;MultipleActiveResultSets=True" 

两者不同,所以问题是当我从回购协议中拉取时如何在本地保留一些东西但在推送时不更改回购协议文件?

为您拥有的每个环境创建不同的appsettings.json

appsettings.Development.json 将自动用于调试和 appsettings.Production.json 将在生产中自动使用

appsettings.json 是未在任何特定环境文件中覆盖的属性和没有匹配文件的环境的默认回退文件

这很简单。两步

第 1 步。设置环境变量:ASPNETCORE_ENVIRONMENT

您可以通过 Windows 环境变量设置来添加它。

ASPNETCORE_ENVIRONMENT设置为Development

或者如果通常 launchSettings.json 文件将创建在 /Properties 文件夹下。如果你有那个文件,你可以检查它是否自动设置了环境变量。

第 2 步。将您的 appsettings.json 复制到 appsettings.Development.json

现在您的应用程序将使用 appsettings.Development.json 覆盖默认的 appsettings.json 文件。

您可以在 appsettings.Development.json 文件中添加本地调试值。

现在您可以编辑连接字符串了。

我强烈建议你不要让 git 跟踪开发文件。