0

我想在但不延迟之后执行许多文件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属性,我想执行更多文件。

我看到的唯一方法是将文档中的延迟示例与两个自定义操作一起使用。

4

1 回答 1

0

如果要运行的文件更改了系统,则必须在 InstallInitialize 之后和 InstallFinalize 之前运行它们。

您可以将 Impersonate 属性设置为“yes”,以使用安装程序的用户而不是系统用户帐户运行它们

在 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>
于 2013-08-14T12:29:08.760 回答