![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.12.2008
Сообщений: 1
|
![]()
Здравствуйте!
У меня проблема, связанная с инсталлятором - перед его запуском нужно сделать корректную проверку на то, установлен ли патч 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\Microso ft\VSTO\OTKLoadr, HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\Installer \UserData\S-1-5-18\Components и копирует otkloadr.dll в каждую установленную версию Office в папку addins. Как можно просто проверить, установлен ли kb907417 (или сразу целиком KB908002) в системе? Заранее благодарю. |
![]() |
![]() |