Настройки разрешений ввода-вывода с использованием установщика .net

Я создаю программу, которая будет установлена ​​с помощью проекта установщика .net. Программа записывает файлы настроек в свой каталог в каталоге Program Files. Он считает, что есть некоторые настройки активного каталога, которые не позволят приложению перейти в этот каталог, если программу запускает ограниченный пользователь. Есть ли возможность изменить настройки папки приложения через установку, чтобы это не было проблемой?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
814
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Наилучший вариант - вообще не писать в каталоги в Program Files.

Ответ принят как подходящий

Запись в папку Program Files - действительно плохая идея, вы должны предполагать, что после установки это место будет «только для чтения».

Сохранение пользовательских настроек в Program Files вызывает проблемы, если более двух человек используют компьютер одновременно (например, службы терминалов), чьи настройки должны быть сохранены, хотите ли вы, чтобы другие пользователи знали «ваши» настройки? Что произойдет, если ваша программа записывает настройки в файл как пользователь A, но пользователь B не может редактировать файл? Пользователь B может иметь доступ к каталогу, но не может читать / удалять файл настроек, поскольку он принадлежит пользователю A.

Устаревшие программы win9x часто записываются в папку с файлами программ, Windows Vista на самом деле делает некоторые хитрые уловки, чтобы эти программы работали. Когда ваша программа записывает файл, vista фактически помещает его в другое место, доступное только этому пользователю. То же самое делается для записи реестра в HKLM (по крайней мере, я обнаружил после нескольких часов отладки ...), и Server 2008 делает то же самое.

Если вам нужно сохранить пользовательские настройки, лучшей альтернативой будет сохранение настроек в папке Application Data (Environment Variable% APPDATA%).

Если настройки являются общесистемными, то пользователь с правами администратора должен установить их после установки или при первом запуске, и они не должны быть перезаписаны ограниченными пользователями.

Итак, чтобы ответить на ваш вопрос - ДА, есть способ сделать то, что вы просили. Но это плохая идея, она небезопасна и, вероятно, вызовет проблемы в долгосрочной перспективе.

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