2013-08-14 3 views
0

Я хочу выполнить много файлов после InstallInitialize, но не отложить, потому что у меня нет прав администратора. До сих пор я использовал для одного файла, например документации:Немедленное выполнение многих файлов после InstallInitialize

<Property Id="QtExecCmdLine" Value="command line to run"/> 
<CustomAction Id="QtExecExample" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/> 
<InstallExecuteSequence> 
    <Custom Action="QtExecExample" After="TheActionYouWantItAfter"/> 
</InstallExecuteSequence> 

Но проблема в том, что есть только один QtExecCmdLine свойство, и я хочу, чтобы выполнить несколько файлов.

Единственный способ, который я вижу, - использовать отложенный пример из документации с двумя пользовательскими действиями.

ответ

0

Если файлы, которые вы хотите запустить, изменили вашу систему, вы должны запустить их после InstallInitialize и до InstallFinalize.

Вы можете установить атрибут Impersonate на «да», чтобы запустить их в качестве пользователя, который завтракал инсталлятор вместо учетной записи пользователя системы

Для запуска нескольких исполняемых файлов после InstallInitialize:

1) Создание CustomAction для каждый из них

<Fragment> 
    <CustomAction Id="MYEXE1" 
        FileKey="myexe1.exe" 
        ExeCommand="-u" 
        Execute="rollback" 
        Impersonate="yes" 
        Return="check"> 
     </CustomAction> 
     <CustomAction Id="MYEXE2" 
        FileKey="myexe2.exe" 
        ExeCommand="-i" 
        Execute="deferred" 
        Impersonate="yes" 
        Return="check"> 
     </CustomAction> 
    </Fragment> 

2) График обычай

<InstallExecuteSequence> 
<Custom Action="MYEXE1" After="InstallInitialize"> 
<![CDATA[NOT Installed]]> 
</Custom> 
<Custom Action="MYEXE2" After="myexe1"> 
<![CDATA[NOT Installed]]> 
</Custom> 
</InstallExecuteSequence> 
+0

Благодарим вас за ответ. Это откроет окно оболочки на короткое мгновение? – Dominic

Смежные вопросы