关于 c#:在本地开发中使用不同的连接字符串

Using Different Connection Strings in Local Development

本问题已经有最佳答案,请猛点这里访问。

我有一个 Umbraco 项目,有多个开发人员在处理它,每个开发人员都有不同的本地数据库连接字符串。当前的过程是我们在本地更改 web 配置中的连接字符串,直到下一个 git push/gitpull 当它被覆盖时,我们必须手动恢复连接字符串。

我见过一个叫做 SlowCheetah 的插件,它允许本地 web 配置转换,但结果非常复杂,所以我正在寻找更强大的东西。

这个问题一般是怎么解决的?


我发现使用 configSource 属性可以解决我认为相当简单的解决方法。我们现在将连接字符串保存在外部文件 connections.txt 中,该文件在 git 中被忽略并在 web 配置文件中引用。

在网络配置中:

1
<connectionStrings configSource="connections.config"/>

和文本文件:

1
2
3
<connectionStrings>
   
</connectionStrings>

您可以使用 .NET Framework 4.7.1 中引入的 ConfigurationBuilder,在其他代码使用之前预处理与您的配置相关的配置 XML/部分。您可以使用机器名称或用户名等环境变量来修改连接字符串部分或 appSettings 部分。

我有一篇博客文章,其中详细介绍了基于 ASPNET_Environment 环境变量从不同 json 文件实现加载配置的详细信息,但您可能可以用更少的代码完成更有针对性的更改。


有一个像这样的连接字符串:
DefaultConnection":"Data Source=.\\\\;Initial Catalog=database;Integrated Security=True;Persist Security Info=False;MultipleActiveResultSets=true"
它使用窗口身份验证来访问 db.