System.configuration web.config и app.config
-
20-09-2019 - |
Вопрос
При использовании сторонней библиотеки dll я получал следующее исключение:
exePath должен быть указан, если он не запущен внутри автономного exe-файла
со следующим следом
Система.Конфигурация.Конфигурационный менеджер.OpenExeConfigurationImpl(конфигурацияfilemap Файловая карта, Логический isMachine, конфигурацияuserlevel userLevel, Строковый exePath).
Причина, по которой я обнаружил, заключалась в том, что он искал app.config, и я предоставил подробную информацию в web.config.Мой вопрос заключается в следующем:почему system.configuration проводит различие между web.config и app.config?Есть какие-нибудь мысли?
Решение
Исполняемые файлы:
Несколько .Исполняемые файлы NET могут находиться в одном каталоге.Поскольку в одном каталоге не может быть двух файлов с одинаковыми именами, приложения должны использовать разные имена для своих основных файлов конфигурации.Тот Самый applicationName.exe.config
схема решает эту проблему.
Веб-приложения / сайты:
Веб-приложения .NET компилируются в библиотеки DLL, а веб-сайты обычно компилируются точно в срок.Следовательно, в проектах такого типа нет "основной точки входа".Можно создать веб-проект, где каждая страница компилируется в свою собственную сборку.Какой из них является основной сборкой?В честь какой сборки мы должны назвать файл конфигурации?
К счастью, только один веб-проект может быть размещен в одном каталоге, поэтому здесь будет находиться только один основной файл конфигурации.Это позволяет выбирать имя основного файла конфигурации по соглашению, и это имя файла должно быть web.config
.
Другие советы
web.config
предназначен только для вашего веб-сайта и веб-приложений.Он остается фиксированным, т.е.не меняет своего названия;это всегда называется web.config
.
app.config
предназначен для не-веб-приложений - Winforms, WPF, NT Services и т. д.Это будет переименовано в YourApplicationName.exe.config
когда вы создаете свой проект.Вы никогда не найдете app.config
под этим именем в каталоге приложения (или, если вы это сделаете, оно не будет использоваться).
Почему Microsoft решила использовать два разных имени — я не знаю — спросите Microsoft.
Таким образом, вам просто нужно знать, с чем вы имеете дело, и предоставлять информацию в правильном месте.