我希望在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 :(得分: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>