Возможно, вы используете файл проекта NUnit. Если это так, у вас будет файл, похожий на MyTestProject.nunit
. Когда вы используете файл проекта, вместо использования файла app.config по умолчанию для конкретной сборки, включенной в проект, NUnit по умолчанию будет искать файл с тем же именем, что и файл проекта Nunit. Так что в моем примере это будет MyTestProject.config
. Вы не сказали, что такое ваш проект, поэтому я не могу дать вам точный ответ ...
Он работает таким образом, потому что он делает его явным, какой конфигурационный файл использовать, что становится важным после того, как вы начнете включать больше сборок в ваш файл проекта. Если вы всегда собираетесь использовать конфигурацию из конкретной сборки, тогда простой способ сохранить синхронизацию двух - это настроить шаг пост-сборки, чтобы скопировать конфигурацию из этой сборки в расположение .config.
Если открыть индивидуальную сборку в графическом интерфейсе, а не работать с файлом проект, то он подберет конфигурацию, связанную с этой DLL (так HB2.UnitTests.dll.config в вашем примере)
Когда Я отредактировал ваш вопрос, я заметил, что вы настраиваете файл конфигурации для использования в файле проекта. Однако вы настраиваете его на неправильную вещь. Когда вы компилируете проект, создающий библиотеку классов, app.config переименовывается компиляцией. Как я сказал выше, это обычно <ouputassembly>.config
. Таким образом, вы должны обновить эту строку в файле проект:
<Config name="Default" binpathtype="Auto" configfile="app.config"
path="C:\Sandbox\HB2\HB2.UnitTests\bin\debug\">
Для этого:
<Config name="Default" binpathtype="Auto" configfile="HB2.UnitTests.dll"
path="C:\Sandbox\HB2\HB2.UnitTests\bin\debug\">
Очень хорошее объяснение, гораздо яснее, чем во многих других статьях я прочитал. Спасибо. Мне пришлось перейти на «configfile =" bin \ debug \ HB2.UnitTests.dll ", прежде чем он смог найти конфигурацию. –