[wpkg-users] check conditions "and or"

Pendl Stefan stefan.pendl at haidlmair.at
Tue Jun 15 17:50:07 CEST 2010


>
> Hi,
>   Is it possible to combine check conditions?  I ask because with the advent of Windows 7 64bit the %programfiles%
> variable becomes inaccurate for file location between XP and Win7 64.  I'll show you what I would like to achieve
>
> <check type="logical" condition="and">
>         <check type="uninstall" condition="exists" path="McAfee VirusScan Enterprise" />
>    <check type="logical" condition="or">
>         <check type="file" condition="versiongreaterorequal" path="%programfiles%\mcafee\virusscan enterprise\mcupdate.exe" value="8.7.0.659" />
>         <check type="file" condition="versiongreaterorequal" path="%programfiles(x86)%\mcafee\virusscan enterprise\mcupdate.exe" value="8.7.0.659" />
>  </check>
>
> If this is not possible now could it be possible in the future?
>
> I would prefer this to creating multiple packages and profiles for multiple OS.
>

Paul,

If you use multiple checks without a logical condition, they must all be true, since AND is the default.

This is not specific to Win7, but to 64-bit Windows in general, since 32-bit applications are always installed into %ProgramFiles(x86)%.

The correct check for your package is below:

<check type="uninstall" condition="exists" path="McAfee VirusScan Enterprise" />
<check type="logical" condition="or">
  <check type="file" condition="versiongreaterorequal" path="%programfiles%\mcafee\virusscan enterprise\mcupdate.exe" value="8.7.0.659" />
  <check type="file" condition="versiongreaterorequal" path="%programfiles(x86)%\mcafee\virusscan enterprise\mcupdate.exe" value="8.7.0.659" />
</check>

As an example, for the following all three checks must return true:

<check type="uninstall" condition="exists" path="McAfee VirusScan Enterprise" />
<check type="registry" condition="exists" path="HKLM\SOFTWARE\MyCheck\TestMe" value="true" />
<check type="file" condition="versiongreaterorequal" path="%programfiles(x86)%\mcafee\virusscan enterprise\mcupdate.exe" value="8.7.0.659" />

Nested checks must be done as below:

<check type="logical" condition="or">
  <check type="logical" condition="not">
    <check type="file" />
  </check>

  <check type="registry" />
</check>

---
Stefan



More information about the wpkg-users mailing list