Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

KB908002

45K
24 декабря 2008 года
ruffpavel
1 / / 24.12.2008
Здравствуйте!

У меня проблема, связанная с инсталлятором - перед его запуском нужно сделать корректную проверку на то, установлен ли патч 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) в системе?

Заранее благодарю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог