Я создал простой пользовательский установщик, как описано здесь а>. Мой новый установщик работает должным образом. Он создает папку и добавляет путь в файл app.config.
Проблема в том, что для папки устанавливается флаг только для чтения, а права на запись для пользователей без прав администратора удаляются.
Если я вручную создаю папку и устанавливаю разрешения, они сбрасываются при запуске установщика.
Как я могу указать эти параметры в моем пользовательском установщике?
РЕДАКТИРОВАТЬ:
Я использую приведенный ниже код, чтобы установить разрешения безопасности для всех, и он работает нормально.
// Get the directory info for the existing folder
DirectoryInfo dirInfo = new DirectoryInfo(settingsFileDir);
// Now apply user access permissions to the folder
if (dirInfo != null)
{
DirectorySecurity security = dirInfo.GetAccessControl();
security.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
security.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
dirInfo.SetAccessControl(security);
}
Когда я пытаюсь установить атрибуты папки, чтобы удалить параметр только для чтения, никаких изменений не происходит. Я делаю это с помощью:
dirInfo.Attributes = FileAttributes.Normal;