Я пишу небольшую утилиту WPF для управления записями в файле hosts для целей разработки. Как вы, возможно, знаете, файл hosts защищен более новыми ОС (Win 7/2008 / Vista).
Я добавил в свое приложение манифест, чтобы установить значение requiredExecutionLevel в «requireAdministrator», как подробно описано в здесь (используя" простой способ ") и в соответствующем вопросе здесь.
К сожалению, у меня это не сработало. При запуске приложения нет запроса на повышение прав, а вызов File.AppendText для файла hosts по-прежнему вызывает исключение System.UnauthorizedAccessException: «Доступ к пути 'C: \ Windows \ System32 \ drivers \ etc \ hosts' отклонен."
HostsChanger.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="HostsChanger" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Любые идеи?