В настоящее время я храню сериализованный XML-файл в каталоге приложения, который содержит все изменения, специфичные для работы программы (не типичная конфигурация системы или пользователя). Недели назад мы начали сталкиваться с проблемами, когда это не спасло бы правильно (см. my previous question об этом).Где хранить пользовательские файлы конфигурации
Короче говоря, мы наконец обнаружили, что Windows 7 (а иногда и Vista) имеет проблемы с записью в каталог приложения (в частности, что-либо в разделе «Программы»). Теперь, если это был обычный файл конфигурации, я бы просто сохранил его в папке APPDATA пользователя, но это не нормально. Мы запускаем это на нашей собственной аппаратуре, а неправильные конфигурации - 99% причин, по которым у клиентов возникают проблемы с запуском нашего программного обеспечения. Поэтому нам нужен этот файл, чтобы он был доступен, чтобы он мог легко найти его и отправить по электронной почте нам. Appdata достаточно сложно для опытных пользователей, чтобы найти, а тем более очень нетехнологичных людей.
Мы также попробовали запустить его как Администратор и широко разрешили доступ к папкам (у нас есть контроль над каждым компьютером, на котором он работает, он никогда не будет работать на какой-либо машине случайного человека). Но иногда они работают, а иногда и нет.
Худшая часть заключается в том, что когда я пишу файл обратно, он даже не выдает ошибку; он просто записывает его в какой-то временный каталог, срок действия которого истекает в какой-то неизвестный момент времени. Через несколько недель у нашего пользователя будет проблема, и файл конфигурации будет испорчен.
Итак, мой вопрос: где я должен хранить этот файл, если не в Program Files? Должен ли я просто поместить его в APPDATA в любом случае и сделать небольшую утилиту, которая автоматически отправляет ее нам по электронной почте в случае возникновения проблемы? Или я могу оставить его в Program Files, но изменить определенное разрешение или раздел реестра, чтобы он мог нормально работать?
AppData - это место для этого. См. Также мой ответ http://stackoverflow.com/questions/3219255/why-do-files-get-placed-c-users-usernameappdata-local-virtualstore-program-fil/3219276#3219276 –
Я знаю, что это правильное место , но как я могу затем заставить технологов-неграмотных пользователей отправить нам файл в случае возникновения проблемы? – drharris
@ 0xA3 В идеале я мог бы исправить все ошибки как в нашем программном обеспечении, так и у поставщиков оборудования и драйверов 9-12, которые мы используем в нашем программном обеспечении, но тогда я бы не стал задавать этот вопрос. ;) Когда пользователи отправляют этот файл конфигурации, я могу обрабатывать каждый случай, который вызывает проблему, но многие вещи мы просто не можем предвидеть. Например, установка параметра одного устройства на 256 вызвала переполнение, хотя драйвер и пин-коды показали, что он должен подняться до 65k. Кикер - это то, что 257 отлично работает. – drharris