Имеется ли в Microsoft документ с рекомендациями по хранению данных приложений и данных пользователей на разных платформах Windows?
При создании приложения, предназначенного для многих версий Windows, рекомендуется определить, где должны храниться данные конкретного приложения. В частности:
- Специфичные данные приложения (например, данные конфигурации приложения)
- Пользовательские данные / настройки
Я знаю, что в Windows Vista, например, есть переменные среды, такие как%APPDATA%, которые можно использовать, но как насчет Windows 7, Windows XP, Windows 98.
Мой главный вопрос: есть ли у Microsoft документ с рекомендациями для этого, с указанием расположения файловой системы для различных типов данных (приложение против пользователя) и последствия для безопасности, которые необходимо учитывать при чтении / записи в эти расположения?
Меня также интересует, как это относится не только к приложениям.NET (где можно использовать ApplicationSettingsBase), но и к неуправляемым приложениям C/C++.
Спасибо Пакс и Ремусу за оба великолепных ответа. Я также нашел этот предмет (для XP):
2 ответа
Здесь есть хорошее описание различных значений CSIDL и папок, на которые они ссылаются (включая описание, которое, надеюсь, должно сказать вам, что вам нужно знать).
Он также содержит ссылки на функции, которые вы должны использовать для получения этих специальных путей к папкам.
Обратите внимание, что в Vista метод немного изменился. Теперь он использует KNOWNFOLDERID
вместо CSIDL
и функции также изменились. Смотрите здесь.
Вы все еще можете использовать старые функции (на данный момент), так как я считаю, что теперь они просто обертывают новые. В какой-то момент в будущем это может измениться.
Они обычно описываются в программе Windows Software Logo (ссылка не работает). Ссылка на документ с требованиями к логотипу Windows 7, но аналогичные документы существуют для XP, Windows 2003, Vista и Windows 2008. В разделе "Технические требования" вы найдете некоторую информацию, которую вы ищете:
Все данные приложения, которые должны быть переданы пользователям на компьютере, должны храниться в
ProgramData
Все данные приложения, предназначенные исключительно для конкретного пользователя и не подлежащие передаче другим пользователям компьютера, должны храниться в
Users\<username>\AppData
В установках "на машину" пользовательские данные должны записываться при первом запуске, а не во время установки. Это связано с тем, что нет правильного местоположения пользователя для хранения данных во время установки.
РЕДАКТИРОВАТЬ:
Пользователи Windows 10, ищите Сертификационные требования для Windows Desktop Apps (Раздел 10)