Summary: | 1c81: При установке не выбирается язык | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Денис Баранов <baraka> |
Component: | Установка программ / MSI | Assignee: | Dmitry Timoshkov <dtimoshkov> |
Status: | CLOSED INVALID | QA Contact: | Svetlana Zhukova <svzhu> |
Severity: | minor | ||
Priority: | P4 | CC: | kondratyuk, lav, olezha |
Version: | 2.0 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 3774 | ||
Bug Blocks: | 8900 | ||
Attachments: | Код, соответствующий действию customFillDefLangsList |
Description
Денис Баранов
2009-04-03 19:08:21 MSD
Насколько я помню, язык там запрашивается через что-то типа vbscript. Который, возможно, не работает в winexp. При запуске через wine98 выбор языка отображается. Думаю это связано с багой #3774 Багу 3774 решить скорее всего не удастся, поэтому надо найти другой способ получения языка. Для начала надо найти то место в msi, где этот язык запрашивается. Пробовал запускать не .exe а .msi со включенным логом. Лог получается слишком краткий Со сторонней msi.dll не запускается. А если бы запускалось, то вряд ли бы там было получение языка при помощи vbscript. при запуске через wine98 был получен лог. К языку относится: Action 17:18:04: CustomSetup. Dialog created Action start 17:18:05: customSelectLangFeatures. Action ended 17:18:05: customSelectLangFeatures. Return value 0. Action start 17:18:05: customFillDefLangsList. Action ended 17:18:05: customFillDefLangsList. Return value 0. Используя программу Orca можно посмотреть, что действию customFillDefLangsList соответствует определённый код (прикреплю отдельным файлом) Created attachment 1129 [details]
Код, соответствующий действию customFillDefLangsList
Как выяснилось, кон написан на VisualBasic, и видимо, проблема не внутри кода, а в самом выполнении этого кода CustomAction имеет тип 38. (Выполнение VbScript). Обрабатывается функцией HANDLE_CustomType37_38, которая вызывает do_msidbCustomActionTypeScript далее создаётся поток, в итоге выполняется call_script, которая используя интерфейсы из mshtml, выполняет скрипт: hr = IActiveScript_QueryInterface(pActiveScript, &IID_IActiveScriptParse, (void **)&pActiveScriptParse); hr = IActiveScript_AddNamedItem(pActiveScript, szSession, SCRIPTITEM_ISVISIBLE); и др., Ещё хотелось бы отметить, что причины ошибки другая, чем в баге #3774. В баге #3774 при установке WINDOWS_VERSION="win98" vbScript прекрасно работал. Сдесь же отличий при изменении версии windows нет. Кажется причина где-то сдесь: fixme:msi:AutomationObject_GetIDsOfNames Unknown member L"FeatureInfo", clsid {000c109e-0000-0000-c000-000000000046} err:msi:MsiActiveScriptSite_OnScriptError script error: L"Object doesn't support this property or method: 'Session.FeatureInfo'" Если посмотреть в msiserver.idl, можно увидеть, что интерфейс Session действительно не имеет свойства/метода FeatureInfo. Можно посмотреть стороннюю msi.dll с помощью oleview. Там интерфейс Session имеет метод FeatureInfo. Кроме FeatureInfo, в Session отсутствуют и многие другие методы. В msiserver.idl объявлен интерфейс FeatureInfo. Возможно удастся его добавить в Session Добавил в .idl соответствующий код. Ситуация немного изменилась: fixme:msi:AutomationObject_Invoke Method 22, L"FeatureInfo" wflags 3 not implemented, clsid {000c109e-0000-0000-c000-000000000046} err:msi:MsiActiveScriptSite_OnScriptError script error: L"Object doesn't support this property or method: 'Session.FeatureInfo'" Во-первых е все методы и переменные FeatureInfo объявлены. Ещё никак не могу найти места, где эти методы должны быть реализованы. Посмотрел другие, соседние интерфейсы - их реализации так же не нашёл. В описание FeatureInfo добавил свойство Attributes. Остались неописанными методы Title и Description. Но где их взять - я не знаю. Внутри msi.dll их нет (и не должно быть) Пока решили выпустить релиз кандидат с рекомендацией устанавливать wine98. А разве отсутствие языка мешало установке? Пустой список был, это да, но сама установка корректна ведь? Снимаю с багфикса, нет обоснования необходимости выбора языка. проверил на eterhack 1.1.37. Бага осталась Проверил в eterhack 1.3.3 и в wwo. Поведение идентичное: Теперь там не пустое поле, а поле с одним пунктом "Системные установки". В eter-1.0.12 по-прежнему пустое поле. Можно попробовать поискать откуда берётся строка "Системные установки" возможно бага будет где-то рядом Откладываем, bugs@ в ближайшее время делать ничего не будет. Надо проверить, может быть уже работает? При установке можно выбрать "дополнительный интерфейс"-"язык". Некий список отображается,можно выбрать хоть все одновременно или не выбирать ни одного, все равно установится русский интерфейс.В конфигураторе в параметрах можно выбрать любой язык,все равно 1с запустится на русском. wine@eter-2 bottle bugs/3773 WINE@Etersoft SQL 2.0.2-eter16/4 Нет необходимости решать. Задача по релизу W@E 2.0 Уже давно не актуально, закрываю. |