0

我正在尝试设置一些启动条件,所以我只看一些注册表,如果它们存在,安装可以继续......如果没有,它应该停止......

问题是,它不起作用...

    <Property Id="MSGEOPATHV8">
        <RegistrySearch Id='msGeoV8_PathRegistry' Type='raw'
            Root='HKLM' Key='SOFTWARE\Bentley\MicroStation GeoGraphics\08.01' Name='PathName' Win64='no'/>
    </Property>

    <CustomAction Id="caGeoPathV8" Execute="firstSequence" Property="MSGEOPATH" Value="[MSGEOPATHV8]" />

    <Condition Message="[MSGEOPATH] Installation of requires previous installation of MicroStation GeoGraphics V8 or Bentley MAP XM/V8i.">MSGEOPATH</Condition>

    ...
    ...

    <InstallExecuteSequence>
        <Custom Action='caGeoPathV8' After='LaunchConditions' />    
    </InstallExecuteSequence>

发现我需要在 appSearch 之后执行它......所以我用 orca 进行了检查......但是自定义操作被安排在应用搜索之后和 launchConditions 之前......所以应该没问题......我也读到了可能变量名应该是大写的......类似于全局......所以我做了它,但仍然没有......

有什么帮助吗?谢谢

编辑: 我忘了说...如果我在条件消息中将 MSGEOPATH 替换为 MSGEOPATHV8 它实际上会打印它找到的路径...。

4

1 回答 1

2

好的,我解决了...问题是我没有定义安装UI顺序...

<InstallUISequence>
        <Custom Action='caGeoPathV8' Before='LaunchConditions'>NOT Installed</Custom>
</InstallUISequence>

有了这个它可以工作......但仍然不确定为什么?因为如果我是对的,每次都在执行吗?

于 2013-08-09T08:15:06.633 回答