Как избежать дублирования настроек при использовании 2 проектов и 2 тестовых проектов в Visual Studio?

Следуя моему предыдущему вопросу , теперь у меня есть 2 проекта: один консольный проект и проект библиотеки. У них также есть свои соответствующие проекты модульных тестов. Когда я запускаю тест для консольного проекта, который использует метод из проекта библиотеки, а проекту библиотеки требуется параметр app.config, этот параметр должен быть в app.config консольного тестового проекта. Что мне нужно сделать, чтобы он прочитал настройку из проекта библиотеки app.config, чтобы мне не приходилось дублировать настройку в нескольких app.config?

Обновить Я не хочу использовать один и тот же App.Config для обоих проектов. То, что мне нужно сделать сейчас, но я больше не хочу этого делать, — это скопировать все настройки библиотеки app.config в настройки консольного проекта.


person Jader Dias    schedule 27.01.2009    source источник


Ответы (2)


Если проект библиотеки является библиотекой классов, то ему нужен контекст для выполнения. VS не будет читать файл app.config для библиотеки классов, он только читает файл app.config из контекста выполнения, насколько я могу сказать . Параметр должен быть в консоли app.config, потому что это контекст для выполнения. Если вы запускаете модульные тесты и они являются исполняемым контекстом, им также потребуется собственный app.config.

person Decker97    schedule 27.01.2009

Один из вариантов, который я использовал, — поделиться файлом конфигурации через программную ссылку. Сначала создайте файл app.config в одном проекте, затем добавьте его в другой:

  1. Щелкните правой кнопкой мыши другой проект.
  2. Выберите «Добавить» -> «Существующий элемент» и перейдите к файлу app.config.
  3. Не нажимайте Добавить! Щелкните маленькую стрелку справа от кнопки и выберите «Добавить как ссылку».

Это, конечно, предполагает, что вы можете использовать один и тот же файл для обоих проектов.

ОБНОВЛЕНИЕ: я не знаю, какой частью app.config вам нужно поделиться. Но для раздела appSettings вы можете включить содержимое другого файла через атрибут «файл».

‹файл appSettings="commonSetting.config"›

‹/Настройки приложения›

Может быть, что-то подобное можно использовать в вашем случае?

person Jeremy    schedule 27.01.2009
comment
Пожалуйста, прочитайте обновление в вопросе. Ваш ответ был бы полезен для моего предыдущего вопроса, но не для этого. - person Jader Dias; 27.01.2009
comment
Теперь ваш ответ в сочетании с ответом Decker97 очень полезен! Спасибо - person Jader Dias; 28.01.2009