我正在编写一个小 WPF 实用程序来管理主机文件中的条目以用于开发目的。您可能知道主机文件受较新的操作系统(Win 7/2008/Vista)保护。
我已在我的应用程序中添加了一个清单,以将 requestedExecutionLevel 设置为“requireAdministrator”,详见此处(使用“简单方法”)和此处的相关问题。
不幸的是,这对我不起作用。当我启动应用程序时没有提升提示,并且为主机文件调用 File.AppendText 仍然会导致 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>
有任何想法吗?