Подтвердить что ты не робот

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

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

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

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

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

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

Спасибо Pax и Remus за отличные ответы. Я нашел этот предмет также (специфичный для XP):

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

4b9b3361

Ответ 1

Здесь есть хорошее описание здесь различных значений CSIDL и папок, на которые они ссылаются (включая описание, которое, надеюсь, скажет вам, что вы нужно знать).

Он также содержит ссылки на функции, которые вы должны использовать для извлечения этих специальных путей.

Обратите внимание, что с Vista этот метод немного изменился. Теперь он использует KNOWNFOLDERID вместо CSIDL, и функции также изменились. См. здесь.

Вы все равно можете использовать более старые функции (на данный момент), так как я считаю, что теперь они просто обертывают новые. В какой-то момент в будущем это может измениться.

Ответ 2

Обычно они описываются в программе для Windows Software Logo (ссылка сломана). Ссылка на документ с требованиями к логотипу Windows 7, но аналогичные документы существуют для XP, Windows 2003, Vista и Windows 2008. В разделе "Технические требования" вы найдете информацию, которую вы ищете:

Все данные приложения, которые должны быть общий для пользователей на компьютере должны храниться в пределах ProgramData

Все данные приложения, исключающие конкретному пользователю и не с другими пользователями компьютера должны храниться в Users\<username>\AppData

В установках "для каждой машины" пользователь данные должны быть записаны при первом запуске и не во время установки. Это потому что нет правильного пользователя местоположение для хранения данных в момент установка.

ИЗМЕНИТЬ:

Пользователи Windows 10, найдите Требования к сертификации для Windows Desktop Apps (раздел 10)