InstallInitialize后立即执行许多文件

时间:2013-08-14 07:32:37

标签: wix wix3.7

我希望在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属性,我想执行更多文件。

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

1 个答案:

答案 0 :(得分: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>