Summary: | Unable to create InstallDriver instance | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Patsev Anton <chemtech> |
Component: | Установка программ / MSI | Assignee: | Anton Rudnev <mibori> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P1 | CC: | kondratyuk, lav |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Debian GNU/Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 2710 |
Description
Patsev Anton
2008-10-28 11:01:17 MSK
Версия 1С Предприятие 8.0: 8.0.18.2 Какую проблему вызывает эта ошибка? Не устанавливается. Устанавливаете командой $ winexp setup.exe ? Устанавливаю: winexp autorun.exe Running in NT environment... fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory fixme:storage:StgCreateDocfile Storage share mode not implemented. fixme:rpc:RpcMgmtWaitServerListen not waiting for server calls to finish fixme:rpc:RpcImpersonateClient (0x15bfec8): stub fixme:ole:NdrClearOutParameters (0x33c698,0x7e6e75ba,0x15c86e0): stub fixme:rpc:RpcRevertToSelfEx (0x15bfec8): stub fixme:rpc:RpcImpersonateClient (0x15d22b0): stub fixme:rpc:RpcRevertToSelfEx (0x15d22b0): stub fixme:rpc:RpcImpersonateClient (0x15d24c0): stub fixme:rpc:RpcRevertToSelfEx (0x15d24c0): stub fixme:rpc:RpcImpersonateClient (0x15d26f0): stub fixme:rpc:RpcRevertToSelfEx (0x15d26f0): stub fixme:msi:msi_unimplemented_action_stub MsiUnpublishAssemblies -> 2 ignored L"MsiAssembly" table values fixme:msi:msi_unimplemented_action_stub UnregisterTypeLibraries -> 3 ignored L"TypeLib" table values fixme:msi:msi_unimplemented_action_stub UnregisterClassInfo -> 1 ignored L"AppId" table values fixme:msi:msi_unimplemented_action_stub UnregisterProgIdInfo -> 9 ignored L"ProgId" table values fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 12 ignored L"Shortcut" table values fixme:rpc:RpcImpersonateClient (0x15fe270): stub fixme:rpc:RpcRevertToSelfEx (0x15fe270): stub fixme:msi:MsiGetMode 2 6 fixme:rpc:RpcImpersonateClient (0x15ff068): stub fixme:rpc:RpcRevertToSelfEx (0x15ff068): stub fixme:rpc:RpcImpersonateClient (0x15ff068): stub fixme:rpc:RpcRevertToSelfEx (0x15ff068): stub fixme:msi:install_assembly Manifest unhandled fixme:msi:install_assembly Win32 assemblies not handled fixme:msi:install_assembly Manifest unhandled fixme:msi:install_assembly Win32 assemblies not handled fixme:rpc:RpcImpersonateClient (0x1602380): stub err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:create_server class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {f618c514-dfb8-11d1-a2cf-00805fc79235} could be created for context 0x17 err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:create_server class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {f618c514-dfb8-11d1-a2cf-00805fc79235} could be created for context 0x17 fixme:netapi32:NetUserAdd ((null), 1, 0x33b468, 0x33b460) stub! fixme:netapi32:NetUserGetLocalGroups ((null), L"USER1CV8SERVER", 0, 00000001, 0x33b43c -1, 0x33b444, 0x33b490) stub! И 1С выдает ошибку: При регистрации COM+ приложения произошла ошибка (код ошибки = 8ad). Вам необходимо зарегестировать это приложение вручную. Только сейчас заметил что 8.0. А почему autorun? Там же наверное есть и собственно дистрибутив с setup.exe? 1C 8.0 установилась нормально под winexp. А вот обновление до 8.0.18.2 вываливается с ошибкой msi. err:msi:ACTION_InstallFiles compressed file wasn't extracted (L"C:\\Program Files\\1cv8\\bin\\ru\\BP.res") err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603 после обновления вайна поведение изменилось. Теперь с той же ошибкой 1603 вываливается на другом файле (wbase.dll) Ясно одно -- после выполнения msi_cabextract() остаются не распакованы те файлы, которые уже существовали в Program Files Так, если wbase.dll удалить из Program Files, то msi_cabextract() изменит его состояние на msifs_installed и программа завершится с ошибкой 1603 уже на другом файле. Также, похоже, что проблема никак не связана с регистром литер в имени файла. для проведения экспериментов на extrac32 /E Data1.cab взял два файла BP.dll -- который всегда создаётся BP.res -- который никогда не создаётся функция, которая вызывает CreateFile для создания файла - это sc_cb_open в setupcab.c . Она же и возвращает хэндл, полученный от CreateFile. Функция CreateFile и для первого и для второго файла вызывается абсолютно идентично. Вот куски лога полученного за один extrac32-запуск: для BP.dll с проверкой существования файла ди после вызова CreateFile: ***sc_cb_open("BP.dll", 8101, 180) before CreateFileA(), file_exist->no ***sc_cb_open("BP.dll", 8101, 180) before CreateFileA(ioflag=40000000, sharing=3, sa={nLength=c, bInheritHandle = 1}, creation=4) CreateFileW -> L"BP.dll" GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 4 attributes 0x80 ***sc_cb_open("BP.dll", 8101, 180) after CreateFileA(), file_exist->yes ***sc_cb_open("BP.dll", 8101, 180) ret -> 44 для BP.res с проверкой существования файла до и после вызова CreateFile: ***sc_cb_open("BP.res", 8101, 180) before CreateFileA(), file_exist->no ***sc_cb_open("BP.res", 8101, 180) before CreateFileA(ioflag=40000000, sharing=3, sa={nLength=c, bInheritHandle = 1}, creation=4) CreateFileW -> L"BP.res" GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 4 attributes 0x80 ***sc_cb_open("BP.res", 8101, 180) after CreateFileA(), file_exist->no ***sc_cb_open("BP.res", 8101, 180) ret -> 44 Соответственно в обоих случаях она возвращает хэндл. Как видно из куска одного лога, разница между вызовами в том, что в первом случае она создаёт файл, а во втором -- нет. несмотря на исследование в http://bugs.etersoft.ru/show_bug.cgi?id=2873 установка обновления под виндой происходит нормально (с установкой BP.res ёмкостью 12288 байт). Вероятно, в процессе установки под виндой используются какие-то другие способы распаковки. Патч - http://lists.etersoft.ru/pipermail/wine-patches/2008-November/000077.html В функции ACTION_InstallFiles, после того, как функция FDICopy распаковывает Data1.cab, на дублирующимся файле не ставится file->stat в msifs_installed Патч добавляет проверку существования файла в этом случае, и не допускает прерывание процесса инсталляции, если файл уже существует. |