2011-09-13 24 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