Pet*_*lin 2 windows-installer wix
基本上我需要在安装之前验证某个程序没有运行.这是通过自定义操作完成的,该操作设置了一个属性APPRUNNING:
<CustomAction Id="CheckingAppIsRunning"
BinaryKey="AppIsRunning"
DllEntry="AppIsRunning"/>
<Binary Id="AppIsRunning"
SourceFile="CustomActions.CA.dll" />
Run Code Online (Sandbox Code Playgroud)
但是在显示的消息中,APPRUNNING似乎是null,也就是说,它根本没有设置(应该是"0"或"1").
<Condition Message="Exit all instances of [APPNAME] before installation (APPRUNNING = [APPRUNNING]).">
<![CDATA[APPRUNNING = "0"]]>
</Condition>
<InstallExecuteSequence>
<Custom Action="CheckingAppIsRunning" Before="LaunchConditions" />
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
我想在条件检查时不执行自定义操作.自定义操作后执行条件检查有哪些选项?
该LaunchConditions行动计划在两个运行InstallUISequence和InstallExecuteSequence.只要您只安排自定义操作InstallExecuteSequence,就不会在启动LaunchConditions时设置该属性InstallUISequence.
您应该CheckingAppIsRunning在两个序列中安排自定义操作.您可能还希望使用Execute='firstSequence'属性定义它- 这样它将运行它所遇到的第一个序列.
这就是我的意思,实际上:
<InstallUISequence>
<Custom Action="CheckingAppIsRunning" Before="LaunchConditions" />
</InstallUISequence>
<InstallExecuteSequence>
<Custom Action="CheckingAppIsRunning" Before="LaunchConditions" />
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
而定义:
<CustomAction Id="CheckingAppIsRunning" BinaryKey="AppIsRunning" DllEntry="AppIsRunning" Execute="firstSequence"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5247 次 |
| 最近记录: |