Вопрос

При использовании сторонней библиотеки 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.

Таким образом, вам просто нужно знать, с чем вы имеете дело, и предоставлять информацию в правильном месте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top