不确定如何根据解决方案配置设置 C# 连接字符串

Unsure how to set C# Connection string depending on solution configuration

我正在尝试弄清楚如何使用 Visual Studio 中的解决方案配置管理来根据构建配置设置 MySQL 连接字符串,但我对此还很陌生。

我在 App.config 文件的 XML 上找到了大量用于创建连接字符串的信息,但不清楚如何区分不同的配置模式(请原谅我缺乏已知术语) 使用不同的连接字符串。

EG。我想要独立的开发和生产环境,每个环境都使用不同的 SQL 数据库,以便不在任何生产数据库上进行开发。

我目前在 app.config 中的内容:

<connectionStrings>
    <add name="Debug" connectionString="debguconnectionstring"/>
    <add name="Production" connectionString="productionconnectionstring"/>
  </connectionStrings>

这可能只是因为我缺乏术语阻碍了我的 Google-ing 能力,所以即使有人能给我指出一个指南或欺骗线程也是很好的。

谢谢!

编辑:

感谢大家的回答,遗憾的是我只能将其中一个标记为正确答案。 +代表每个人,正是我想要的。再次感谢!

这篇文章展示了如何构建这样的配置:

https://mitasoft.wordpress.com/2011/09/28/multipleappconfig/

要记住的要点: 为连接字符串命名,仅更改其他细节,因此在代码中您将使用相同的名称,但它会根据配置(发布与调试)而改变

PS:抱歉,没有足够的声誉指向 post 作为对问题

的评论

您将需要三个配置文件,如下所示: - app.config - app.Debug.config - app.Release.config

这里也已经有一个问题: How to select different app.config for several build configurations

您正在寻找配置转换,(msdn 文章:https://msdn.microsoft.com/en-us/library/vstudio/dd465318%28v=vs.100%29.aspx) 然而,这只适用于网络项目。在其他项目中使用它需要自定义代码,或者像我通常那样需要外部包,例如Slow Cheetah (https://www.nuget.org/packages/SlowCheetah/) 允许您在任何配置文件中使用转换。

语法非常简单。您在附加配置文件上定义相同的节点,然后将属性 "xdt:Transform" 设置为所需的模式,并将 "xdt:Locator" 设置为您想要与转换匹配的属性(例如,给它 xdt:Locator= "Match(name)" 将转换具有相同名称属性的项目)