2014-09-05 13 views
1

Эти вопросы заданы здесь несколько раз, но я не могу применить ни один из ответов на мой вопрос. Итак, мы снова идем.Включить ConnectionStrings из конфигурационного файла библиотеки классов

У меня есть два проекта, ProjectA и ProjectB. ProjectA- это библиотека классов и использует Entity Framework, которая (по умолчанию) записывает свои настройки модели в файл App.config. ProjectB, с другой стороны, является исполняемым файлом со своим собственным файлом Web.config и ссылками ProjectA, чтобы удовлетворить его потребности в доступе к данным. Конечно, проблема в том, что во время выполнения читается файл web.config ProjectB, так как это «исполняющая сборка», что означает, что мне нужно включить все строки подключения из app.config ProjectA в сеть ProjectB .config.

Мне действительно не нравится идея ручного копирования этих строк подключения. Мне интересно, есть ли способ сообщить ProjectB's web.config, чтобы заменить его раздел connectionStrings на номер app.config из ProjectA. Таким образом, в теории, я хотел бы начать с чем-то вроде этого:

ProjectA (App.config):

<configuration> 
    <connectionStrings> 
    <add name="MyModelContext" connectionString="blahblah" /> 
    </connectionStrings> 
</configuration> 

ProjectB (Web.config):

<configuration> 
<connectionStrings> 
</connectionStrings> 
<configuration> 

После строительство проекта/во время выполнения:

ProjectB (Web.config):

<configuration> 
    <connectionStrings> 
    <add name="MyModelContext" connectionString="blahblah" /> 
    </connectionStrings> 
<configuration> 

Поддерживается ли эта функция?

+2

'Поддерживается ли эта функция?' Нет простого готового решения. –

+0

Я не могу больше согласиться. И это очень раздражает. – Vland

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

0

Вы можете заменить практически любой раздел app.config/web.config внешним файлом с помощью configSource attribute.

В вашем web.config, где connectionStrings.config ваш app.config ConnectionStrings участок от Projecta:

<connectionStrings configSource="connectionStrings.config" /> 

configSource это относительный путь к файлу web.config, так что вы можете указать его в любой файл в приложении, например config\connectionStrings.config.

+0

Хмм, я получаю исключение со следующей ошибкой: 'Невозможно открыть файл configSource 'ProjectA.dll.config'. (C: \ SomeFolder \ MyProject \ web.config строка 8)' ... – user2872534

+0

Является 'ProjectA. dll.config' в корне вашего проекта? – jrummell

+1

Это в 'bin'. Но даже при этом 'ProjectA.dll.config' не существует нигде в выходной директории. Должен ли я делать что-то конкретное для этого? – user2872534

Смежные вопросы