Добавить разрешение на запись в файлы пользовательских папок, созданные с помощью установщика Windows - PullRequest
1 голос
/ 12 марта 2019

Я создаю папку внутри папки программных данных с помощью установщика Windows. При запуске проекта я получаю сообщение об ошибке при попытке записи в файл

C:\ProgramData\MyAppFolder\settings_file.sqlite

Это сообщение об ошибке

attempt to write a read-only database.

Как я могу дать разрешение на запись в файл db и некоторые другие файлы при сборке файла msi с помощью установщика Windows

Я могу видеть права доступа к папке следующим образом enter image description here

любой способ включить чтение и запись при сборке с помощью установщика Windows

1 Ответ

0 голосов
/ 12 марта 2019

ACL Permissioning : Добавление разрешений на запись для обычных пользователей обычно считается анти-паттерном, но иногда для прагматических целей вам необходимо предоставить общий доступ к файлу всем пользователям ПК.

Доступ на запись : Для записи: Вот список подходов к решению проблем, в которых отказано в разрешении .Большинство из перечисленных опций совсем не годятся - и поэтому список был составлен - нам нужно помнить, почему они плохие и какие существуют альтернативы.

Инструмент развертывания : применение пользовательских разрешений ACL - открытие файла на защищенном диске для записи всеми пользователями - отличается в зависимости от того, какой инструмент вы используете для создания MSI.Поскольку вы не указываете WiX, Installshield, Advanced Installer или что-то еще, я не уверен, что ответить.Позвольте мне вместо этого использовать ссылки:

WiX :

Есть еще два (не использовать):
  • Разрешение (устаревшая таблица MSI LockPermission)
  • FileSharePermission (для разрешения общего доступа - используйте, когда вам необходимо разрешение общего доступа)

Installshield :

Расширенный установщик :

  • Применение разрешений, щелкнув правой кнопкой мыши папку и перейдя к свойствам: Диалог разрешений .
  • Кажется, здесь используется старый, устаревший LockPermission table.

Есть и другие инструментыкак описано здесь: Short List . Вторичный (больше ссылок).


Другие ссылки :

...