пятница, 15 января 2010 г.

Как упаковать IE6 в ThinApp для запуска под Win7

Peter Bjork опубликовал долгожданное многими руководство по упаковке IE6 в ThinApp пакет для Windows 7.

Этот пакет использует Mozilla Firefox и адд-он "IE Tab", в такой конфигурации вы можете указать какие страницы нужно отображать с помощью IE6.

Требования

• ВМ с чистой Windows 2000 без сервис-паков (Internet Explorer версии 5.00.2920.0000)
• ВМ с чистой Windows XP и доступом в Internet
• ThinApp 4.0.4
• Некоторый опыт и понимание как виртуализовать софт с помощью ThinApp (см. "How to Make a ThinApp Application")
• Установочный пакет Internet Explorer 6 SP1
   ◦ Загрузите ie6setup.exe отсюда: http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&DisplayLang=en
   ◦ Запустите ie6setup.exe /c:"ie6wzd.exe /d /s:""#E" для загрузки полного установочного пакета IE6

Как создать пакет с Mozilla Firefox, IETabs и IE6.


1. Упаковка Internet Explorer 6

    1.1 Запустите ВМ с W2K

    1.2 Сделайте снапшот чистой ВМ перед тем как продолжить

    1.3 Скопируйте загруженный установочный пакет IE6 на ВМ

    1.4 Установите ThinApp 4.0.4

    1.5 Запустите "Setup Capture" и сделайте снапшот перед установкой

    1.6 Запустите ie6setup.exe

    1.7 Перезагрузите ВМ при необходимости

    1.8 Сделайте снапшот после установки

    1.9 Активируйте Entry Points для Internet Explorer.exe, inetcpl.exe и cmd.exe.  Назовите Primary Datacontainer и inventory name как-нибудь осмысленно, как например:


На самом деле вам не требуется использовать отдельный контейнер для Read Only данных, но если вы не настолько опытны в ThinApp, то настоятельно рекомендую сделать именно так.

    1.10 Установите режим "Modified WriteCopy"


    1.11 Остальные настройки в мастере Setup Capture можно оставить по умолчанию

    1.12 Скопируйте директорию "C:\Program Files\VMware\VMware ThinApp" из ВМ с Windows 2000 и откатитесь обратно на снапшот. Копируйте директорию ThinApp целиком, в дальнейшем это упростит нам жизнь.

    1.13 Проверьте, что пакет с IE6 запускается на Windows 2000 при установленном IE5.


    1.14 Теперь ВМ с Windows 2000 можно выключить, она больше нам не понадобится

2. Включение Mozilla Firefox и IETabs в пакет с IE6

    2.1 Запустите ВМ с Windows XP

    2.2 Сделайте снапшот ВМ в "чистом" состоянии

    2.3 Скопируйте директорию "VMware ThinApp" в корень диска C. В итоге в Windows XP должно получиться вот так:

    2.4 Замените ваши текущие ключи рееста этими двумя:

HKEY_CURRENT_USER (удалите "-1" из имени)

HKEY_LOCAL_MACHINE

    2.5 Перестройте проект, запустив "C:\VMware ThinApp\Captures\MozillaFirefox_IE6\build.bat".

    2.6 Запустите Internet Explorer Entry Point (C:\VMware ThinApp\Captures\MozillaFirefox_IE6\bin\Internet Explorer.exe), откройте в нем http://www.mozilla.com и загрузите установочный пакет Mozilla Firefox. Обязательно выберите Open and Run, чтобы запустить установку в виртуальном окружении IE6.



    2.7 При установке Firefox я использовал все настройки по умолчанию.

    2.8 Запустите Firefox и установите IE Tab. Перезапустите Firefox после установки.


    2.9 В Firefox откройте Tools – IE Tabs Options

    2.10 Добавьте http://bcheck.scanit.be/bcheck/ в Site Filter


Обязательно добавьте сюда все URL, которые вам будет необходимо отображать при помощие IE6.

    2.11 Откройте http://bcheck.scanit.be/bcheck/, чтобы убедиться в правильности настройки - этот адрес должен обрабатываться IE6.


    2.12 Закройте Mozilla Firefox и Internet Explorer .

    2.13 Запустите cmd.exe вне виртуальной среды

    2.14 В директории "C:\VMware ThinApp\Captures\MozillaFirefox_IE6" выполните "\VMware ThinApp\sbmerge.exe" apply.


    2.15 Откройте "C:\VMware ThinApp\Captures\MozillaFirefox_IE6\Package.ini" и добавьте следующий текст в конец файла:

                [Mozilla Firefox.exe]
                Source=%ProgramFilesDir%\Mozilla Firefox\firefox.exe
                Shortcut=MozillaFirefox_IE6.dat
                WorkingDirectory=%ProgramFilesDir%\Mozilla Firefox
                ;Protocols=FirefoxURL;HTTP;HTTPS
                ;FileTypes=.htm.html
                Shortcuts=%Programs%

Protocols и FileTypes отключены в данном примере, но вы легко сможете проассоциировать соответсвующие протоколы и расширения, просто удалив точку с запятой в начале строки.

Сохраните и закройте package.ini.

    2.16 Перестройте проект, запустив "C:\VMware ThinApp\Captures\MozillaFirefox_IE6\build.bat".
После перестроения директория bin должна выглядеть вот так:


3. Тестовый запуск на Windows 7

Теперь самой время скопировать директорию bin на машину с Windows 7 и запустить Mozilla Firefox.exe Entry Point. Для проверки перейдите по ссылке http://bcheck.scanit.be/bcheck/.


Установленный пакет и IE8 должны работать одновременно без проблем.


4.Эпилог

Теперь, когда вы убедились, что упакованный в ThinApp пакет IE6 работает под Windows 7, настало время почистить проект. В этом руководстве я не упоминал файлы, который можно удалить для экономии места и превратить этот пакет в настоящий цельный ThinApp пакет.
В директории проекта можно удалить те файлы, которые не нужны для запуска проекта в вашем окружении.
Очевидные директории, подлежащие удалению:
            %Favorites%
            %History%
            %Internet Cache%
            %Profile%
            %SendTo%
            %drive_C%
            %Cookies%

В этом проекте получилась пара Entry Point и отдельный Data Container, однаком в зависимости от настроек проект можно скомпилировать в единый исполняемый файл. Inetcpl.exe был включен в проект для возможности изменения настроек вашего IE6.

13 комментариев:

  1. А где здесь поставить "Мне нравится"? :-)

    ОтветитьУдалить
  2. В некоторых, обычно крупных и очень компаниях есть определенные приложения, которые отказываются работать в IE7 / IE8. И в силу этого компания будет иметь определенные трудности при миграции на Windows 7. Остается либо разворачивать Citrix фермы с доставкой IE6 в терминал, либо использовать IE6 из XP Mode (что не доступно, если нет поддержки аппаратной виртуализации), либо как-то ставить XP в VirtualBox / VMware Workstation, либо вовсе отказываться от Windows 7.

    Я знаю как минимум об одной такой крупной компании, и было в конечном итоге решено не пытаться делать трехэтажные конструкции, а ждать пока кто-нибудь не найдет способ упаковать IE6 в ThinApp. От IE6 отказаться не получается.

    ОтветитьУдалить
  3. Если не секрет, что это за приложение?
    Насколько мне известно, все нормальные приложения (SAP, Siebel, WebSphere ну и sharepoint естественно :)) отлично себе работают c IE7/8
    Скорее всего это что-то самописное, внутри компании, или что более вероятно криворуким партнером. Мое мнение - намного правильнее пнуть разработчика чем такое кривое решение.

    Я не против того что такие умения ThinApp - это круто, но это из той же серии что поддержка NT4 и DOS - есть функция, ее абсолютно никто не поддерживает, используйте на свой страх и риск.

    ОтветитьУдалить
    Ответы
    1. Вот одно из таких приложений, если раньше ЦРУ раздавало его всем бесплатно, то сейчас оно стоит очень много денег, хотя и старая версия отлично работает но только с ИЕ6.
      http://www.rustv.ru/

      Удалить
  4. Да, забыл добавить, в большинстве случаев, с которыми сталкивался я помогала простая замена useragent, которую можно легко распространять политиками :)

    ОтветитьУдалить
  5. Денис, я не имею в данном случае никакого отношения к приложению, со мной консультировались на тему упаковки IE6 в ThinApp пару месяцев назад. На 100% уверен, что это будет чрезвычайно востребовано, например, в США и Европе.

    Ответ на то, что лучше - самоочевиден. Но не всегда то, что лучше вообще возможно. Приходится искать workaround'ы, оглядываясь на требования для поддержки.

    ОтветитьУдалить
  6. Занимательная статья... Только не понял зачем нужен firefox.

    ОтветитьУдалить
  7. Денис, Firefox нужен только для того чтобы _НЕ_ запускать IE6, просто потому что просто iexplore.exe не запустится (или запустится, но не будет работать), С таким же,а может даже лучшим успехом можно написать программку, которая использует activeX от IE (простой пример из трех строчек кода - http://www.alexschultz.co.uk/weblog/2006/05/web_browser_wid.html) или использовать поделки типа maxton.
    по идее, этот способ подходит и для XenApp и для Altiris и для App-V. Но проверять даже не хочется :)

    ОтветитьУдалить
  8. У меня зафинапленный IE6 нормально запускается на xp/2003/vista/2008 - правда пришлось долго шаманить с ключами реестра. На семерке не пробовал...

    ОтветитьУдалить
  9. Кто-нибудь может выложить уже собранный вариант?

    ОтветитьУдалить
  10. Строго говоря, это чревато нарушением лицензионных соглашений, так что вряд ли.

    ОтветитьУдалить
  11. Доброго времени суток!
    Скажите пожалуйста, где я могу достать чистый дистрибутив Windows 2000 без сервис-паков ?

    ОтветитьУдалить