Имеется ли в Microsoft документ с рекомендациями по хранению данных приложений и данных пользователей на разных платформах Windows?

При создании приложения, предназначенного для многих версий Windows, рекомендуется определить, где должны храниться данные конкретного приложения. В частности:

  • Специфичные данные приложения (например, данные конфигурации приложения)
  • Пользовательские данные / настройки

Я знаю, что в Windows Vista, например, есть переменные среды, такие как%APPDATA%, которые можно использовать, но как насчет Windows 7, Windows XP, Windows 98.

Мой главный вопрос: есть ли у Microsoft документ с рекомендациями для этого, с указанием расположения файловой системы для различных типов данных (приложение против пользователя) и последствия для безопасности, которые необходимо учитывать при чтении / записи в эти расположения?

Меня также интересует, как это относится не только к приложениям.NET (где можно использовать ApplicationSettingsBase), но и к неуправляемым приложениям C/C++.

Спасибо Пакс и Ремусу за оба великолепных ответа. Я также нашел этот предмет (для XP):

Как написать приложение для Windows XP, которое хранит данные о пользователях и приложениях в правильном месте с помощью Visual C++

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)

Другие вопросы по тегам