2015-07-02 23 views
1

我有一個簡單的應用程序,我正在安裝一個exe並在安裝結束時運行它。但是當安裝完成後,它顯示app.exe的第二個高程對話框,我不想顯示它,這裏是我的wix代碼。第二個高程對話框

<?xml version="1.0" encoding="UTF-8"?> 

<!-- The following three sections are from the How To: Add a File to Your Installer topic--> 
<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="APPLICATIONROOTDIRECTORY" Name="My Application Name"/> 
    </Directory> 
</Directory> 

<DirectoryRef Id="APPLICATIONROOTDIRECTORY"> 
    <Component Id="app.exe" Guid="12345678-1234-1234-1234-222222222223"> 
    <File Id="app.exe" Source="MySourceFiles\app.exe" KeyPath="yes" Checksum="yes"/> 
    </Component> 
</DirectoryRef> 
<Feature Id="MainApplication" Title="Main Application" Level="1"> 
    <ComponentRef Id="app.exe" /> 
</Feature> 
<!-- Step 2: Add UI to your installer/Step 4: Trigger the custom action --> 
<InstallExecuteSequence> 
    <Custom Action='LaunchInstalledExe' After='InstallFinalize'/> 
    </InstallExecuteSequence> 

    <CustomAction Id="LaunchInstalledExe" 
    FileKey="app.exe" 

    ExeCommand="" 
    Return="ignore" /> 

回答

2

這可執行InstallFinalize後正在運行,所以它不會被默認升高,這顯然有明顯的提升,因此會要求提升。我會嘗試InstallFinalize(而不是立即)之前,看看是否可以解決這個問題,你可能也希望它也被模仿。 InstallFinalize之後是更安全的地方。問題在於管理員可能會啓動安裝(或通過組策略推出),然後走開,讓有限的用戶訪問運行提升的程序,這可能會限制用戶不應允許執行的操作。例如,我當然不希望爲受限用戶啓動安裝,以後該用戶可以訪問可配置數據庫安全性的程序。因此,從安全角度來看,InstallFinalize之後產生的提升提示是適當的。但這一切都取決於你的客戶,他們的環境和產品本身。

+0

非常感謝菲爾,這個伎倆。 –

相關問題