Всем привет!
Наверное, вы сталкивались с тем, что нужно некоторое приложение, а установить его нет какой либо возможности, ну или нужно работать на нескольких компьютерах, а ставить одно и тоже приложение на эти машины не хочется. Решением такой проблемы может быть создание портабельного (автономного, портативного) приложения из существующего.
У компании vmware есть такой инструмент. Называется он vmware ThinApp. Служит для того, что бы удобно и быстро переносить приложение внутри виртуализированных сред, но его можно использовать и для создания приложений, которые не требуют установки.
Я попробую показать, как это можно сделать.
Потребуется:
- vmware thinApp
- Чистая операционная система (об этом чуть ниже)
- Приложение, из которого нужно сделать переносимую версию.
Чистая операционная система — это обычно операционная система, установленая на виртуальной машине, в которой кроме самой операционной системы ничего нет. Зачем это нужно? Что бы ответить на этот вопрос нужно понимать, что делает ThinApp. Программа сканирует ОС и записывает это. Далее, пользователь устанавливает приложение, которое нужно сжать и thinapp снова проверяет файлы и реестр. Все изменившееся собирается в пакет, а из него уже получается приложение.
Таким образом, если система будет замусорена или будут происходить какие-нибудь дополнительные операции (к примеру обновление антивируса) то она найдет не нужные изменения и скопирует лишние файлы в пакет.
Практика
У меня установлена Windows 7 Professional x86, на ней установлена программа. Буду делать портативный браузер (к примеру opera). Дистрибутив Opera уже скачен.
Запустив ThinApp нас встречает следующее окно:
Это простое приветствие. В этом окне кратко описано, как пользоваться программой, а именно описан процесс:
- Пресканирование
- Установка приложения
- Постсканирование
- Конфигурация
- Сборка
Нажимав далее попадаем на следующий шаг — пресканирование, точнее на конфигурацию для пресканирования. Можно задать на каких дисках искать изменеия. По-умолчанию ищет на системном.
Далее — сам процесс. После него нужно установить приложение не закрывая ThinApp, если приложению потребовалась перезагрузка, то ее нужно выполнить и после перезагрузки процесс создания пакета продолжится.
После установки приложения нужно выполнить postscan.
Программа снова проверяет файлы и реестр. А потом сравнивает 2 слепка (я писал выше)
Появится такое окно, в нем необходимо отметить те исполняемые файлы, которыми будет запускаться создаваемое приложение. Здесь все хорошо, идем далее.
Использовать ли Хоризн? Нет, нам он не нужен — Далее.
В этом окне требуется задать права на запуск создаваемого приложения. В корпоративной среде можно разрешить запуск приложения например только некоторым группам пользователей из Active Directiry, но мы простые смертные, поэтому позволим запускать всем, оставляем по умолчанию и далее.
Доступ к файловой системе — Либо полный доступ на запись в не системные директории (рекомендуется для доверенных приложений) либо ограниченный доступ. Что ставить здесь зависит от приложения.
Где хранить файлы конфигурации и работы приложения? На выбор 3 варианта:
- Хронить в папке пользователя
- Хранить рядом с исполняемым файлом
- или указать отдельно сетевой диск
Приложение портативное, хочется таскать его на флешке — так что выбираем второй пункт.
Далее нужно указать, куда сохранять проект и как назвать приложение.
Проект, это лист файлов а так же конфигурация, опираясь на которые приложение собирается в исполняемый файл.
Далее нужно указать где хранить данные приложения. Для маленьких приложений есть 2 варианта:
- Либо это будет сам exe-файл
- Либо это будет .Dat файл в той же директории.
Так же можно указать необходимость создания msi-файла (нам не нужно) и можно сжать пакет. Так он будет весить меньше, но процесс создания будет весьма долгим.
Фактически не этом все. Осталось только нажать на кнопку save и проект будет создан.
После создания проекта можно отредактировать файл конфигурации или просмотреть файлы проекта:
если все устраивает, то можно нажимать кнопку build и приложение будет собрано:
Спасибо за внимание.