Старовер
Сообщения: 1708
Благодарности: 314
|
Профиль
|
Отправить PM
| Цитировать
F.A.Q. по интегратору обновлений.
ПОКАЗАТЬ_СКРЫТЬ
Легенда:
[...] - папка, путь к папке.
File.exe - файл
Parametr - параметр, переменная
1. Теоретические вопросы.
1.1. Как мне интегрировать в Office 2003 конвертор файлов для Office 2007 ?
Никак !
Конвертер файлов для Office 2007 сделан по принципам Office 2007, который, в свою очередь, не поддерживает интеграцию обновлений в административную точку в отличие от выпусков 2000-2003гг.
Поэтому для конвертера файлов Office 2007, а так же Office 2007 нельзя построить интегратор на штатных методах обновления.
Замыслы по нештатному обновлению Office семейства 2007 есть, но воплотить их в жизнь некогда - ибо нештатные механизмы требуют огромного времени на разработку и тестирование.
Интегратор в принципе не может интегрировать конвертер файлов Office 2007 в Office 2003.
И даже если мы его туда интегрируем вручную, например через Orca, мы потеряем возможность обновлять как сам Office 2003, так и конвертер файлов.
От составителя:
Зато никто не мешает использовать метод Setup.ini:
Берем конвертор, последний SP для конвертера и обновления к нему например в этом посте
Размещаем их например так: конвертор в папке [Convert.2k7], обновления к нему в папке [Convert.2k7\Updates] , а все вместе в папку интегратора [ADD] (это позволит автоматически скопировать конвертор с обновлениями в создаваемый дистрибутив.
И добавляем в Setup.ini следующие секции
Код: 
[ChainedInstall_1]
TaskName=File Formats Converter 2007
TASKTYPE=msi
PATH=Convert.2k7\O12Conv.msi
CmdLine=ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_2]
TaskName=SP2_FileFormatConverters
TASKTYPE=exe
PATH=MsiExec.exe
CmdLine=/update Convert.2k7\Updates\O12Convsp2-ru-ru.msp
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_3]
TaskName=WEP_Patch_FileFormatConverters
TASKTYPE=exe
PATH=MsiExec.exe
CmdLine=/update Convert.2k7\Updates\wordconv.msp;Convert.2k7\Updates\pptconv.msp;Convert.2k7\Updates\xlconv.msp
Display=basic
Reboot=0
IgnoreReturnValue=1
Конвертор файлов и нужные обновления к нему установятся после установки Office 2003.
1.3. Нужно ли мне копировать xml-файлы в дистрибутив ?
Если используется оригинальный дистрибутив, то никаких файлов добавлять не требуется.
Вопрос относится к случаю, когда необходимо получить полноценный дистрибутив в CAB-файлах из имеющейся административной точки. Дистрибутивы семейства Office 2003 содержат 2 типа XML-файлов - это Sku*.xml в корне дистрибутива и XML-файлы, находящиеся в каталоге [FILES\SETUP]. При отсутствии файлов типа Sku*.xml дистрибутив становится нерабочим - из него нельзя сделать ни административную точку, ни выполнить обычную установку. В обычном дистрибутиве эти файлы находятся в корне, но при создании административной точки в корне их уже нет.
Прочитав лог версий интегратора можно обнаружить, что с версии 2b5 эти файлы были обнаружены в административной точке:
Цитата:
1) Теперь Sku*.xml берутся из админ точки. К административной точке надо добавить лишь XML-файлы из каталога [FILES\SETUP] исходного дистрибутива
|
И теперь вручную их добавлять уже не требуется.
Второй тип XML-файлов, находящихся в папке [FILES\SETUP], содержит контрольные суммы архивов дистрибутива. Зачем эти файлы нужны пока достоверно неизвестно - возможно они как-то связаны с поднимавшейся здесь проблемой кэширования дистрибутива, обновленного интегратором. Но эти файлы обновляет скрипт Sort2CABs.js на котором собственно и построен интегратор, поэтому их обработка и оставлена. Эти файлы отсутствуют в административной точке (на самом деле они там точно без надобности - ведь в административной точке нет CAB-файлов, а значит и не нужны их контрольные суммы).
Поэтому, если вы хотите запаковать имеющуюся административную точку, то как раз необходимы эти XML-файлы взятые с оригинального дистрибутива.
1.4. Какие особенности интеграции обновлений в полный пакет программ Office 2003 (Visio, OneNote и т.д.)?
Существует некий полноценный дистрибутив, в котором уже собраны в одном каталоге все различные компоненты Office 2003. Этот дистрибутив большинству людей недоступен и найти его в интернете маловероятно. Выглядит он как обычный о дистрибутив, т.е. кучка CAB-файлов плюс набор установщиков - их там больше десяти, в отличие от общедоступного дистрибутива, где один установщик - Setup.exe и один MSI-файл (у большинства Pro11.msi). В то же время, известно, что общедоступный дистрибутив распространяется на нескольких дисках - 1й диск собственно сам Office 2003, 2й - FrontPage, 3й, 4й, 5й - Project, Visio и OneNote. Так вот очень многие CAB-файлы этих пяти дисков полностью совпадают (в пределах одного Service Pack и языка), поэтому все эти дистрибутивы можно совместить в одном каталоге, что значительно сэкономит занимаемое ими место.
Можно просто скопировать все эти диски в один каталог, но тогда мы теряем возможность устанавливать продукты через файл Setup.exe - ведь он есть во всех дистрибутивах, а параметры для него хранятся в файле [FILES\SETUP\Setup.ini] - а этот файл различен для этих пяти дисков.
Самый простой способ выйти из этой проблемы - это переименовать файлы Setup.exe и [FILES\SETUP\Setup.ini] в Setup***.exe и [FILES\SETUP\Setup***.ini], где *** - должен быть одинаков для файлов одного дистрибутива. Но в таком виде этот способ не подходит для интегратора, потому что при создании административной точки и Setup.exe и [FILES\SETUP\Setup.ini] берутся из CAB-файлов и все изменения будут утеряны. Поэтому надо взять Orca и заменить все найденные Setup.exe на Setup***.exe и[FILES\SETUP\Setup.ini] на [FILES\SETUP\Setup***.ini].
Но это все подготовительная часть - для тех кому интересно как все работает.
Чтобы совместить в одном каталоге несколько дистрибутивов нужно:
1) Положить все эти дистрибутивы в папку [Distrib] - можно по подпапкам, ничего в них не изменяя;
2) Указать в Settings.ini - ReNameSetupz=Yes - т.е. разкомментировать эту строку (убрать ';' в начале строки);
3) Настроить остальные параметры при необходимости и запустить процесс интеграции;
После окончания интеграции, на выходе получим дистрибутив с установщиками Pro11.exe, Fp11.exe и т.д. вместо файлов Setup.exe
1.7. Зачем нужны сгенерированные REG-файлы Owc10, Owc11, Pro11, AllPatches и как их использовать ?
При интеграции скрипт генерирует файлы Owc10.reg Owc11.reg Pro11.reg. Затем информация обобщается в один файл AllPatches.reg. Этот файл и нужно запустить для добавления информации о интегрированных обновлениях в системный реестр. И также для корректной работы с Windows Update - она берет свою информацию из реестра. Файл AllPatches.reg сам по себе не запустится во время установки!
Прописываем его в Setup.ini (желательно в конце файла)
Код: 
[ChainedInstall_7]
TaskName=Add Updates to registry
TASKTYPE=exe
PATH=REG.EXE
CmdLine=IMPORT AllPatch.reg
1.8. Дайте мне пример рабочего файла Setup.ini ! Как это работает ?
Нате:
Код: 
[MSI]
MSI=PRO11.MSI
[Product]
ProductCode={90110419-6000-11D3-8CFE-0150048383C9}
ProductName=Microsoft Office 2003 SP3
ProductVersion=11.0.5614.0
Recache=1
[MST]
;MST=SetupAll.mst
[Options]
;USERNAME=Customer
;COMPANYNAME=my company
;INSTALLLOCATION=C:\Program Files\MyApp
PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX
ADDLOCAL=ALL
[Display]
Display=basic
CompletionNotice=No
[OfficeWebComponents]
MSI=OWC11.MSI
[ChainedInstall_1]
TaskName=FrontPage 2003
TASKTYPE=msi
;MST=SetupFp.mst
PATH=FP11.MSI
CmdLine=PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_2]
TaskName=Project 2003
TASKTYPE=msi
;MST=SetupPrj.mst
PATH=PRJPROE.MSI
CmdLine=PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_3]
TaskName=OneNote 2003
TASKTYPE=msi
;MST=SetupOn.mst
PATH=ONOTE11.MSI
CmdLine=PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_4]
TaskName=Visio 2003
TASKTYPE=msi
;MST=SetupVis.mst
PATH=VISPRO.MSI
CmdLine=PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_5]
TaskName=File Formats Converter 2007
TASKTYPE=msi
PATH=Convert.2k7\O12Conv.msi
CmdLine=ADDLOCAL=ALL
Display=basic
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_6]
TaskName=SP1 for File Formats Converter 2007
TASKTYPE=exe
PATH=MsiExec.exe
CmdLine=/update Convert.2k7\Updates\Convsp2.msp;Convert.2k7\Updates\pptconv.msp
Reboot=0
IgnoreReturnValue=1
[ChainedInstall_7]
TaskName=Add Updates to registry
TASKTYPE=exe
PATH=REG.EXE
CmdLine=IMPORT AllPatch.reg
Как это работает можно почитать здесь.
Также можно использовать несколько вариантов установки создать различные сценарии - SetupAll.ini SetupSmall.ini. Чтобы их автоматически запустить, скопируйте и переименуйте файл Setup.exe в SetupAll.exe и SetupSmall.exe соответственно. Подробнее в вопросе #1.4 данного F.A.Q.
1.9. Почему конвертер документов из Office 2007 некорректно сохраняет документы и потом не может их открыть ?
Это ошибка разработчиков и с интегратором не связанна. Тем не менее решение проблемы здесь на форуме найдено.
Поэтому, если у вас после открытия файла .docx Word предлагает сохранить его как .docm, а затем отказывается открывать его (открыть документ можно
только поменяв расширение на .docx), примените следующий твик реестра(сохраните код в файле с расширением *.reg):
Код: 
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12]
"Name"="Word 2007 Macro-enabled Document"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12]
"Name"="Word 2007 Document"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97]
"Name"="Word 97-2003 Document"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12]
"Name"="Word 2007 Macro-enabled Document"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12]
"Name"="Word 2007 Document"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97]
"Name"="Word 97-2003 Document"
Источник
2. Технические вопросы.
2.2. Во время интеграции выскакивают непонятные сообщения об ошибке- Kill Stream Not Found
Интегратор всегда делает административную точку из любого дистрибутива, в т.ч. из уже созданной административной точки.
При создании административной точки к msi-файлу добавляется поток AdminProperties, который и удаляется интегратором, чтобы из административной точки снова стало возможно сделать административную точку (это гарантирует, что в дистрибутиве будут все необходимые файлы). Если запустить интеграцию второй раз, а поток AdminProperties уже удален, то появляется ошибка об отсутствии потока - Kill Stream Not Found. Пока не нашел метода как проверить наличие этого потока - Msidb.exe только может его удалять, а список потоков не дает.
Поэтому по сути параметр IsAdmin (файла Settings.ini) нужен только в первый раз для административной точки, чтобы удалить этот поток (в нем кстати хранится информация, которую можно ввести при создании административной точки - организация, серийный номер и т.п.)
Отсюда:
1. При интеграции обновлений можно использовать как обычный дистрибутив, так и административную точку;
2. После первой обработки вашего дистрибутива нужно изменить параметр IsAdmin на значение =No ;
2.6. Почему в установке/удалении программ не отображаются обновления, которые я интегрировал с помощью интегратора?
Автор решил отказаться от отображения названий обновлений в "Установка и удаление программ", так как если организовать это отображение, то потребуется наличие всех интегрированных обновлений в папке [%Windir%\Installer] , а также некоторых записей в реестре, что лишает смысла использование интегратора.
Версия 3b4 умела показывать установленные обновления без наличия обновлений, но при этом нельзя было удалить/изменить Office 2003.
Новые версии интегратора не отображают интегрированных обновлений, зато дружественны по отношению к Windows Update, он корректно определяет обновления и не предлагает их установить повторно.
2.7. Почему версии интегратора 3.B7 и 3.B6 не интегрируют обновления только из MSP-файлов, как можно было в более ранних версиях?
Отвечает автор.
Все дело в том, что с течением времени Интегратор научился отсеивать устаревшие обновления. Эта "технология" требует оригинального названия exe-файла обновлений, поэтому я уже давно "мысленно" отказался от использования msp-обновлений. К тому же с версии 3b6 используется другой механизм получения имен обновлений - теперь они берутся из файла ohotfix.ini который идет вместе с msp-файлом внутри exe-обновления.
Для возвращения к старому режиму без потери функциональности потребуется вести собственную базу обновлений - пока это лично мне не требовалось...
Составил Volk1234
|