Я хочу прочитать все переменные среды из реестра и установить для нее новое значение с помощью c # в Visual Studio 2010 Express.
Таким образом я читаю подраздел локальной машины:
SYSTEM\CurrentControlSet\Control\Session Manager\Environment
и там значение Path
.
При чтении значения Path
:
reg = Registry.LocalMachine.OpenSubKey(SUB_KEY_PATH, true);
Я получил исключение, что у меня нет разрешения на это.
Поэтому я устанавливаю значение в манифесте:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Но теперь я не могу скомпилировать свой проект, потому что ClickOnce не поддерживает его.
Как я могу скомпилировать проект с уровнем безопасности requireAdministrator?
Одно решение, которое я нашел, - это скомпилировать его без уровня requireAdministrator, после чего я изменил значение в myproject.exe.manifest. Правильно ли я понял, что мне всегда нужно копировать оба файла (манифест и exe-файл) на другой компьютер, чтобы он работал правильно? Можно ли поместить информацию в exe-файл путем компиляции?