Если вы не используете ConfigurationManager
для управления своим приложением и пользовательскими настройками, вы должны это сделать. Инструментарий конфигурирования в .NET Framework замечательно хорошо продуман, и инструменты Visual Studio, которые взаимодействуют с ним, тоже.
Поведение по умолчанию ConfigurationManager
помещает как инвариантные (приложение), так и изменяемые (пользовательские) настройки в правильные места: настройки приложения находятся в папке приложения, а пользовательские настройки - System.Environment.SpecialFolder.LocalApplicationData
. Он работает правильно во всех версиях Windows, которые поддерживают .NET.
Что касается файлов журналов, System.Environment.SpecialFolder.LocalApplicationData
, как правило, это место, куда вы хотите поместить их, потому что оно гарантированно доступно для записи пользователем.
Конечно, бывают случаи, когда вы этого не сделаете, например, если вы хотите записать файлы в общий сетевой ресурс, чтобы вы могли легко получить к ним удаленный доступ. Существует довольно широкий спектр способов реализации этого, но большинство из них начинается с создания настройки приложения, которая содержит путь к общей папке. Все они связаны с администрацией.
У меня есть пара жалоб на ConfigurationManager
и инструменты VS: должна быть лучшая документация высокого уровня, чем есть, и лучшая документация сгенерированного VS класса Settings
. Механизм, с помощью которого файл app.config
превращается в файл конфигурации приложения в целевом каталоге сборки, является непрозрачным (и источником одного из наиболее часто задаваемых вопросов из всех: «что случилось с моей строкой соединения?»). И если есть способ создать настройки, которые не имеют значений по умолчанию, я не нашел его.