KB908002
У меня проблема, связанная с инсталлятором - перед его запуском нужно сделать корректную проверку на то, установлен ли патч KB908002 в системе. Если патч полностью установлен, то установку патча пропускать.
Привожу текущее содержание product.xml для KB908002:
<?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Microsoft.OtkLoader.2.0">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Net.Framework.2.0" />
</RelatedProducts>
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="lockbackRegKey.msi"/>
<PackageFile Name="extensibilityMSM.msi"/>
<PackageFile Name="office2003-kb907417sfxcab-ENU.exe"/>
</PackageFiles>
<InstallChecks>
<MsiProductCheck Property="lockbackRegKeyInstalled" Product="{64F3B15C-24C7-4B2B-9B72-65CCBBD7F06B}"/>
<MsiProductCheck Property="extensibilityMSMInstalled" Product="{09959E11-AD5D-408E-96AF-E3346954D6B8}"/>
</InstallChecks>
<Commands Reboot="Defer">
<Command PackageFile="lockbackRegKey.msi" Arguments=' /quiet'>
<InstallConditions>
<BypassIf Property="lockbackRegKeyInstalled" Compare="ValueGreaterThanOrEqualTo" Value="1"/>
</InstallConditions>
<ExitCodes>
<DefaultExitCode Result="Success"/>
</ExitCodes>
</Command>
<Command PackageFile="extensibilityMSM.msi" Arguments=' /quiet'>
<InstallConditions>
<BypassIf Property="extensibilityMSMInstalled" Compare="ValueGreaterThanOrEqualTo" Value="1"/>
</InstallConditions>
<ExitCodes>
<DefaultExitCode Result="Success"/>
</ExitCodes>
</Command>
<Command PackageFile="office2003-kb907417sfxcab-ENU.exe" Arguments=' /quiet'>
<ExitCodes>
<DefaultExitCode Result="Success"/>
</ExitCodes>
</Command>
</Commands>
</Product>
Патч состоит из трёх составляющих: lockbackRegKey.msi, extensibilityMSM.msi, office2003-kb907417sfxcab-ENU.exe и проверки нужно производить для каждой из них, но для kb907417, похоже, нет ProductCode.
office2003-kb907417sfxcab-ENU.exe с помощью ohotfix.exe (Microsoft Office Hotfix Installer) регистрирует otkloadr.dll в реестре:
HKEY_CLASSES_ROOT (COM-сервер),
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTO\OTKLoadr,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components
и копирует otkloadr.dll в каждую установленную версию Office в папку addins.
Как можно просто проверить, установлен ли kb907417 (или сразу целиком KB908002) в системе?
Заранее благодарю.