【问题标题】:Centralize connection strings for multiple projects within the same solution在同一解决方案中集中多个项目的连接字符串
【发布时间】:2013-04-15 19:14:56
【问题描述】:

我的解决方案中目前有三个项目,它们都有自己的 App.config 文件,并且具有完全相同的连接字符串。

有没有办法整合连接字符串/app.config 文件,以便我只需要对一个位置进行更改?

【问题讨论】:

标签: c# connection-string app-config


【解决方案1】:

有几种方法可以做到:

  1. 将常用配置设置放入machine.config中,如图here
  2. 将通用配置设置放在一个中心文件中,并链接到每个项目的 app.config 中,如 here 所示
  3. 将配置设置存储在注册表中

对我来说,我总是使用最后一个解决方案 :) 祝你好运!

【讨论】:

  • 第二个选项似乎是最可取的,但链接已断开。可以修一下吗?
  • @DelLee 我刚刚修复了链接 ;)
  • 链接再次断开。请问你能解决这个问题吗?
【解决方案2】:

首先,看看这篇文章。它描述了如何在多个项目之间共享相同的 app.config。

How to Share App.config?

其次,看看另一篇文章,它描述了如何让不同的 app.config 文件引用一个包含连接字符串的共享 xml 文件。

Use XML includes or config references in app.config to include other config files' settings

【讨论】:

    【解决方案3】:

    您可以在一个解决方案中的多个项目之间共享连接字符串,如下所示:

    1. 在解决方案文件夹下使用您的连接字符串创建一个ConnectionStrings.config 文件,该文件应仅包含connectionStrings 部分

    2. 在您的项目中,将此配置文件添加为链接(添加现有项目,添加为链接)

    3. 选择添加的文件并将其属性Copy to Output Directory设置为Copy alwaysCopy if newer
    4. 在项目的App.config 中,使用configSource 属性指向链接的ConnectionStrings.config 文件: <connectionStrings configSource="ConnectionStrings.config" />

    ConnectionStrings.config

    <connectionStrings>
        <add name="myConnStr" connectionString="Data Source=(local); Initial Catalog=MyDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        ...
        <connectionStrings configSource="ConnectionStrings.config" />
        ...
    </configuration>
    

    Read more details....

    【讨论】:

    • 在你尝试之前你无法弄清楚;)不要等待别人为你测试代码。
    • 很好的答案,如果要复制到输出目录,您可能需要添加 'bin\' 前缀。
    • 如果我需要两个单独的连接字符串用于调试和发布(如 Web.Debug.config 和 Web.Debug.Release)?
    • 处理这个问题的好方法。谢谢,@Stacked。我有一个类似于 JohnB 的问题:你能在这个共享配置文件上执行转换吗?
    • 比仅仅链接到没有上下文或讨论的 404 页面要好得多。效果很好!
    猜你喜欢
    • 1970-01-01
    • 2013-07-17
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多