在同一解决方案中与多个项目共享配置文件

时间:2017-02-24 07:09:21

标签: c# entity-framework web-config

我的项目使用Entity Framework 6 Database First作为DAL,并且需要在每个项目的配置文件中都有connectionString

由于我在解决方案中有多个项目,我发现如果我需要修改连接字符串可能会出现问题,我需要检查每个配置文件。

所以我提出了一个想法,在解决方案目录下创建一个 Share 配置文件 结构:

+ Solution
  - CommonConfig
    - Share.Debug.config
    - Share.Release.config
  - Project1
    - web.config
      - web.Debug.config
      - web.Release.config
    - Share.Debug.config (Add with Link)
    - Share.Release.config (Add with Link)
  - Project2
    ...

我已将connectionString部分移至Share.xxx.config

<connectionStrings>
  <add name="db" connectionString="..." />
</connectionStrings>

首先使用configSource进行测试,它可以正常运行

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
      <connectionStrings configSource="bin\Share.Debug.config"/>
...
</configuration>

然后我删除了connectionString的整个部分 并修改web.Debug.config

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings configSource="bin\Share.Debug.config" xdt:Transform="InsertIfMissing" />
  <system.web>
  </system.web>
</configuration>

但它不起作用,EF无法使用此设置找到connectionString

如果我想添加整个部分而不是节点会不会有问题?

修改
在阅读了几篇文章后,有人说转换只在我发布网站时有效,所以我尝试将它发布到我的本地IIS。

当我创建和预览发布配置文件时,它会返回错误

  

使用'configSource'的部分可能不包含其他属性或元素。

0 个答案:

没有答案