Сборка App.Config игнорируется; Вместо этого читается Machine.config - PullRequest
0 голосов
/ 09 марта 2009

При выполнении моих интеграционных тестов VS2008 на моем DAL я обнаружил, что сборка читает machine.config вместо app.config.

сборки.

Вот краткое описание стека вызовов:

  • В модульном тестовом проекте есть вызов метода в DataLayer Project
  • MyDataLayer класс наследуется от базового класса. Метод называется GetStuff()
  • Базовый класс использует System.Configuration. Все хорошо.
  • вызов этого свойства в коде: ConfigurationManager.ConnectionStrings["MyConnStr"] фактически возвращает значение NULL, потому что, по-видимому, оно не найдено.
  • проверка класса MyDataLayer, да, MyConnStr есть.
  • проверка коллекции ConnectionStrings, да, она имеет одну строку подключения. Это тот, что в machine.config, который закончен в C:\Windows\Microsoft.NET\Framework\v2.0.50727\Config\machine.config
  • Я не уверен, почему мой DAL app.config заменяется machine.config

Любая помощь приветствуется!

Ответы [ 2 ]

5 голосов
/ 09 марта 2009

Не уверен, относится ли это к вам, но вам нужно убедиться, что строка конфигурации находится в файле app.config вашего модульного теста, а не в вашем проекте DataLayer.

2 голосов
/ 26 августа 2009

Это может помочь некоторым людям, имеющим дело с Settings.settings и App.config:

Не упустите атрибут GenerateDefaultValueInCod e на панели свойств при редактировании любого значения (строк) в сетке Settings.settings в Visual Studio (VS2008 в моем случае).

Если для GenerateDefaultValueInCode установлено значение True (здесь по умолчанию установлено значение True!), Значение по умолчанию компилируется в exe (или dll), его можно найти встроенным в файл при открытии в текстовом редакторе ,

Я работал над консольным приложением и, если у меня были значения по умолчанию в exe, приложение всегда игнорировало файл конфигурации, помещенный в один и тот же каталог!

Весьма кошмар и никакой информации об этом во всем интернете.

...