我创建了一个可执行文件,由另一个应用程序调用,用于需要UAC提升权限的进程。如果我使用下面的清单构建这个项目它会请求UAC好,如果我将这个项目输出添加到我的安装项目,它是否在没有UAC的情况下创建它?
<?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="CreateApp" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
知道这是为什么或者是否可以将它作为清单的安装项目的一部分?
答案 0 :(得分:1)
InstallExecuteSequence中的自定义操作已作为Windows Installer服务的子进程运行。所以他们继承了他们的特权,并且没有使用清单。
要运行具有完全权限的自定义操作,您应将其安排为deferred with no impersonation。
如果您没有将EXE用作自定义操作,并且只是从其他进程启动它,请确保使用ShellExecute。