Как избежать дублирования настроек при использовании 2 проектов и 2 проектов тестирования в Visual Studio? - PullRequest
0 голосов
/ 27 января 2009

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

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

Ответы [ 2 ]

2 голосов
/ 27 января 2009

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

2 голосов
/ 27 января 2009

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

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

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

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

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

...