MSI Packaging, FAQ & Tips

  • Вот я и решился открыть тему которая будет посвящена [MSI]. Попробую в теме доступно описать воможности создания [MSI] пакетов, описать программы которые нужны для этого.
    Сразу хочу предупредить что тема довольно большая и сложая поэтому буду копировать тексты с некоторых сайтов, но в основном постараюсь писать из своего опыта.

  • MSI – ресурсы


    В качестве обзорной статьи по MSI прекрасно подойдет обзор Gary Chirhart Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Мы предполагаем, что вы прочитали эту статью и уже знаете, что такое MSI-файл, столь часто используемый при инсталляции программы. Также, вам уже должно быть известно, что MSI-файл предоставляет возможность доступа к своим данным при помощи SQL-запросов в сочетании с MSI API- функциями. Дополнительно о структуре MSI-файла можно почитать на RSDN.ru: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    В качестве справочника по MSI API-функциям, разумеется, нужно использовать MSDN.


    Нас с вами заинтересует раздел CustomActions в MSI-файле. Почитать о том, что это такое и с чем это едят можно здесь: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Самой знаменитой утилитой для работы с MSI, вероятно, является MS ORCA, входящая в состав Platform SDK. Поскольку не все имеют возможность качать 200-мегабайтный минимум из-за одной- единственной утилиты, мы продублировали ее на wasm.ru. Дополнительно стоит ознакомиться со статьей Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. (обязательно скачайте файлы - для этого требуется регистрация, но она бесплатна)


    Есть также продукт под названием AdminStudio от IS Corp. На момент написания статьи текущей версией была 5.5. По своим функциональным возможностям примерно равен ORCA, только занимает не 2 мегабайта как ORCA, а 200. Да, есть еще и Wise for MSI и возможности утилиты достаточно велики. Правда, и размер, опять же, не мал…


    У ORCA, однако, есть большой недостаток. В ходе чтения вы увидите, что иногда бывает необходимо извлечь файл, чтобы поправить пару байт или выдрать кусок кода для кейгена. ORCA не позволяет извлекать файлы из MSI-дистрибутива. AdminStudio тоже. WinRAR способен открывать большинство MSI-дистрибутивов, однако не все.



    CyborgRD: Для извлечения я исползую MSI- плугин для Total Commader


    оригинал текста сдесь Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • я не могу сдесь описать все возможности [MSI], хочу описать только то что я знаю из своего личного опыта и что на мой взглад являеся самым важным. Также постараюсь описать мой личные методы использования [Wise Package Studio] и [WiseScript]. хочу сразу предупредить что я не профессионал, и если будут допущены ошибки не пинайте, приму все поправки. Буду рад так-же вопросам. Програмы как [ORCA] и [InstallShield] я не использую, но было бы не плохо описать их тоже. Возможно есть кроме меня кто-то на Форуме кто использует эти или другие программы, тогда добро пожаловать!

  • Что же такое [MSI] и для чего она нужа вообще.


    Поробую описать своими словами: [MSI] пакеты облегчают жиснь как администраторам так и техникам потому-что являются очень гибким инструментом для инсталлации программ на пользовательских машинах без участия самого пользователя. С помощю таких систем как [SMS 3.0] есть возможность распределения пакетов в сети, их замена новыми релизами, кроме того [MSI] имеет функцию восстановления и откатки поврежденых инсталлаций. Ка лично использую программу [Wise Packager Studio] описание взял с сайта:


    Новая версия Wise Package Studio - мигрируем на Windows 2000/XP вместе с привычными приложениями


    Package Studio 5.1 содержит революционную технологию MSI Script, позволяющую сисадминам просматривать и редактировать любой инсталяционный пакет Windows Installer, как сценарий (скрипт). Такая возможность весьма удобна, поскольку сервис Microsoft Windows Installer основан на базе данных и достаточно сложен для понимания его работы. MSI Script разделяет сложный пакет Windows Installer на простой последовательный скрипт, облегчая процесс перепаковки приложений, например, для систем, мигрирующих на Windows 2000 или Windows XP.
    В версии 5.1 выделяется такие существенные изменения:
    - Интеграция управления источником (source control integration) с Visual MSIDiff -- позволяет связать процесс создания инсталляции с процессом разработки командой исходного кода, что снижает количество ошибок при отслеживании формирования инсталляционных пакетов Windows Installer.
    - Мастер изоляции приложений -- создает изолированные пакеты, устраняя конфликты между совместно используемыми .DLL или .OCX файлами.
    - Aвтоматизированная поддержка технологии .NET -- помогает проще создавать инсталляции приложений .NET путем использования подробностей процесса инсталляции прямо из сборок кода (assemblies).
    - Интернет-инсталляции -- для удаленного развертывания приложений Windows Installer, для осуществления которого пользователям потребуется только загрузить необходимый пакет, что экономит объем загружаемых данных и время необходимй загрузки.
    Wise Package Studio 5.1 доступна в трех редакциях. Корпоративная (Enterprise Edition) позволяет совместно разрабатывать законченные инсталляцтонные пакеты, документировать работу, отслеживать проект и обеспечивать безопасность пользователя. Профессиональная (Professional Edition) адресована интеграторам, разрабатывающим приложения для подразделения компании, а стандартная редакция (Standard Edition) -- тем, кому требуется только "перепаковка". Важно, что для компаний, переходящих на Windows 2000 или Windows XP, все редакции Package Studio обеспечат возможность унаследования инсталляций с помощью их перевода на технологию Windows Installer (.MSI), что предоставляет в их распоряжение все ее передовые возможности (самовосстановление (self-healing), установку по требованию и откат инсталляции).
    Полнофункциональную пробную версию (30 дней) стандартной или профессональной редакции можно загрузить с Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • сначала хочу сказать пару слов по инсталлации [Wise Package Studio]


    Важно при первой инсталлации задать параметры [Complete] и папку где будеть находится [Wise Share Point]


    Немного слов к [Wise Share Point]
    [Wise Share Point] ето база данных в которой сохраняются настройки, программы, например [Inclusion] и [Exclusion] листы для [Capturing] а так-же
    [Templates], [Merge Modules]; [Conflict Manager]. Которые могут потом одновреммено использоватся на разных машинах разными пользователей. Т.е. всего один раз надо конфигурировать [Wise Share Point] и можно постоянно им пользоватся. [Wise Share Point] поддерживает [MS Access] и [MS SQL MDAC]


    Если у кого появится интерес могу предоставить фаилы с моего [Wise Share Point] для настройки листов


  • Сейчас скачиваю Wise Package Studio... :))
    файлы для настройки листов тяжелые.?
    Я могу сделать ночью как приду домой доступ на фтп... :))

  • все фаилы тяжеловаты будут, но я сеичас подвешу [repackage.ini] его скопируеш в твой [SharePiont] в папку, в этом фаиле [Inclusion] и [Exclusion] листы, а также настроки самого поинта , когда будеш делать первый раз [Setup Capture] выбери вместо [Local] [Wise Share Point] картинку подвешу в следущем топике.


    П.С переменуй фаил [repackage.txt] в [repackage.ini]
    а то [INI] не подвешиваются

  • вообщем [Share Point] запакованный без [Merge Module] весит около 8 МБ могу выслать на мыло


    вот картинка где надо выбрать вместо [local] [Share point]


    Пожалуйста зарегистрируйся для просмотра данного изображения.


    [Settings ]ненадо делать они уже в [repackage.ini]


    вообщем когда заинсталлиеруешь, перекачаи мой фаил в твои поинт, переименуй, потом стартани [Package Studio] и жми на [Tools] потом [Setup Capture Configuration] потом на [change] выбирай [Wise Share Point] остальное все просто на [weiter/next]

  • что такое [Merge Module] ето готовые модули для использования в пакетах, например [XML]; [SQL]; или [Runtime] такие как [Comctl32]; [MSVCRT], то есть не надо будет в каждый пакет вставлять например [DLL /OCX] фаилы достаточно выбрать подходящий модуль
    обычно [Wise Package Studio] после капчуринга сам пердлагает выбрать тот или иной модуль, если походящий модуль есть в поинте то он будет занесен автоматически после согласия, если нет то предлагается скачать с сайта

  • Теперь перейдем к капчурингу.


    Что такое [Capturing]? [Packager Studio] имеет такую возможность сделать снимок [Snapshot] с системы до и после инсталлации, и занести разницу в готовый [MSI]
    Есть разные методы [Capturing] я предпочитаю [Snapshot] иногда при проблемах подключаю [Smarmonitor]

  • Чтобы провести [Capturing] надо запустить [WPS]- [Wise Package Studio] я буду так сокращать в будущем, нажат на [Tools] потом на [Setup Capture]



    Пожалуйста зарегистрируйся для просмотра данного изображения.

  • Важно что бы все программы были закрыты перед и во время капчуринга! иначе могут попасть фаилы итд в [MSI] котрые там не должны быть, я видель например пакеты в которых были [Temporary Internet Files], просто то кто делал капчуринг в это время бродил по Интернету


    1. Шаг первый выбираем [Target Installation] тоесть название конечного фаила [MSI] например [D:\Wise Share Point\Projects\My Program\myfile.MSI], остальные настроики пусть остаются. Обясню зачем нужна функция [Copy Source Files During Installation Save]: это означаэт что все Фаилы которые были захвачены капчурингом будут скопированны в другое место. Для чего это нужно. После каптуринга и компилации готового [MSI] мы можем етот [MSI] исправить и обработать, например убрать не нужный мусор. Но что-бы заново закомпилировать [MSI] нужны оригинальные [Sourcen]
    Пример мы закапчуравали прогу которая заносит фаил [Progamma.exe] и [tmp.tmp] в [C:\Program Files\Programma], мы открываем наш готовый [MSI]
    и выкидываем [tmp.tmp] так как он нам не нужен
    потом мы компилируем по новой вот тут и могут начатся проблемы, при новой компилации, фаилы заносятся в [MSI] поновой, и поэтому фаил [programma.exe] должен находится в этот момент в [C:\Program Files\Programma]; вот тут может и пригодится функция [Copy Source Files During Installation Save] она уже после капчуринга копирует
    [Sourcen] в другое место которое можно потом задать в [Source] таблице [MSI], например в [D:\Wise Share Point\Projects\My Program\_SOURCE]



    Пожалуйста зарегистрируйся для просмотра данного изображения.

  • просто заносим названия фаила как в премере вверху


    Пожалуйста зарегистрируйся для просмотра данного изображения.

  • Шаг второй конфигурация
    2. Если сдесь еще не стоит [Share Point] то выберите его и конфигурация находящаяся в поинте будет загружена

  • следущий шаг выбор метода, я беру всегда как на картинке, только при проблемах подключаю [Smart Monitor]


    Пожалуйста зарегистрируйся для просмотра данного изображения.

  • теперь програма производит автоматический [Snapshot] системы до инсталации


    Пожалуйста зарегистрируйся для просмотра данного изображения.

  • теперь проводим инсталлацию программы


    (запускайте инсталаторы например [setup.exe], инсталлаторы типа [install.msi] открываются напрямую и создаются трансформы, о трансформах напишу позже)





    Пожалуйста зарегистрируйся для просмотра данного изображения.