Я унаследовал проект, в котором для создания установочного пакета используется WIX Toolset (3.10.3). Приложение загружает и хранит общие данные в c:\ProgramData\Vendor\ApplicationName
. Однако этот путь создается не во время установки, а во время выполнения самого приложения, когда путь запрашивается в первый раз.
Я обнаружил проблему, связанную с разрешениями, которая возникает, когда приложение используют несколько пользователей Windows. Всякий раз, когда приложение загружает новые файлы данных из серверной части, именно текущий пользователь Windows получает разрешения «Полный доступ» для этих файлов. Когда кто-то другой входит в систему с другой учетной записью Windows, у него есть разрешения только на чтение этих файлов. И эти смешанные разрешения вызывают проблемы, когда приложение пытается синхронизировать локальные файлы с серверной частью.
Поскольку приложение не требует повышенных привилегий, я должен исправить это во время установки. В качестве первого шага я убедился, что папка c:\ProgramData\Vendor\
создается во время установки и что она получает правильные разрешения с <util:PermissionEx User="Everyone" GenericAll="yes" />
. Поскольку эти разрешения наследуются, это решит проблему для всех пользователей, выполняющих новую установку.
Проблема в том, что разрешения наследуются только папками / файлами, созданными после установки. Это означает, что у пользователей, выполняющих обновление с предыдущей версии, останутся файлы данных со смешанными разрешениями. Поэтому мне нужно убедиться, что все существующие папки и файлы получают новые разрешения во время установки. Как мне этого добиться?