Как разрешить редактировать App.config в Program Files пользователем Notepad или другим редактором? - PullRequest
3 голосов
/ 07 июня 2011

У меня возникла проблема, с которой я не сталкивался ранее, когда App.configs для служб Windows, которые установлены в каталоге «Program Files (x86)», заблокированы для редактирования, даже когда службы Windows не работают. Я получаю сообщение о том, что файл используется, даже если это не должно быть.

  • Это что-то особенное в размещении файла .config для службы Windows в каталоге Program Files?
  • Как разрешить пользователю, который знает местоположение файла .config, редактировать его в Блокноте или другом редакторе, не получая файл, в сообщении "используется".

Я попытался установить Службу Windows на трех разных машинах и убедился, что служба фактически не запущена / не запущена. Я надеюсь получить некоторые сведения о том, почему это не работает, так как в прошлом у меня был app.configs, редактируемый для .exes, которые живут в каталоге.

Ответы [ 4 ]

2 голосов
/ 24 ноября 2011

Vista и более поздние версии не позволят пользователю изменять файлы в программных файлах dir. Вы должны хранить их в AppData.

1 голос
/ 07 июня 2011

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

0 голосов
/ 07 января 2012

Я сталкивался с этой проблемой раньше, когда пытался установить программу, написанную для Windows XP, на Windows 7.

Для Windows XP я всегда создавал настройки в файле App.config вручную, и они заканчивались следующим образом:

<appSettings>
    <add key="port" value="48889" />
<appSettings>

Для Windows 7 мне пришлось внести следующие изменения:

  1. Щелкните правой кнопкой мыши по проекту и перейдите в Свойства.
  2. Нажмите на Настройки.
  3. Введите требуемые настройки приложений (убедитесь, что вы задали область действия для пользователя - для этого примера)

Это меняет app.config следующим образом:

<userSettings>
    <ProjectName.Properties.Settings>
        <setting name="port" serializeAs="String">
           <value>50000</value>
        </setting>
    </ProjectName.Properties.Settings>
</userSettings>

Это сохранит файл конфигурации в пользовательских документах и ​​настройках. Где именно, зависит от того, какую версию Windows вы используете. Но следующий код C # покажет вам, где:

System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
0 голосов
/ 07 июня 2011

Если вы используете Vista, Windows Server 2008 или Windows 7, то я бы сказал, что, вероятно, UAC не позволяет вам выполнить сохранение (которое, я думаю, вступит в силу из-за пути использования Program Files). Попробуйте запустить блокнот с правами администратора (найдите блокнот на панели запуска правой кнопкой мыши и выберите запуск от имени администратора), затем откройте файл, отредактируйте его и попробуйте сохранить.

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