2011-09-13 21 views
2

我创建了一个由另一个应用程序调用的可执行文件,用于需要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> 

任何想法,为什么这是或如果它有可能作为安装项目的一部分与清单?

回答

1

InstallExecuteSequence中的自定义操作已经作为Windows Installer服务的子进程运行。所以他们继承他们的特权,并且不使用清单。

要运行具有完全权限的自定义操作,您应该将其计划为deferred with no impersonation

如果您不使用EXE作为自定义操作,而只是从其他进程启动EXE,请确保使用ShellExecute