20 октября, 2016

Создание portable программ с помощью Cameyo

Иногда программа при установке в систему может конфликтовать с другой своей версией. Или необходимо чтобы при запуске программа не оставляла временных файлов или записей в реестре.

Инструменты для создания portable версий программ:

  • Бесплатная Cameyo
  • VMware ThinApp
  • Enigma Virtual Box
  • Turbo Virtual Application Studio (ex. Spoon Studio)

Основной принцип работы этих инструментов можно разбить на такие этапы:

  1. Определение изменений в системе после установки целевой программы;
  2. Создание сборки, в которой целевая программа получить (возможно частично) виртуальное окружение (файловая система, реестр) при котором она сможет нормально выполняться. Это достигается за счет первого пункта;
  3. Другим свойством такой сборки будет отслеживание изменений, которые вносит целевая программа в окружение. Такие изменения не будут затрагивать общую систему, а будут перехватываться, сохраняться отдельно и в дальнейшем эмулироваться.

Работа с Cameyo

Очень простое, а потому удобное приложение, не смотря на мелкие минусы. Комментарии ниже относятся к версии Cameyo v3.1.1443.

***

Позволяет легко редактировать уже созданные сборки, для этого достаточно просто открыть exe файл сборки в Cameyo.

***

Сборка, созданная с помощью Cameyo, при запуске распаковывается в папку рядом с основным exe файлом, либо в папку %AppData%\VOS\*, в зависимости от настройки сборки (смотреть General | Data Storage).

***

Основной режим изоляции приложения, заданный в General | Isolation mode имеет меньший приоритет, чем режим изоляции заданный отдельно для папок/файлов или веток реестра.

***

После создания сборки, скорее всего придется открывать ее для редактирования и удалять лишние файлы и записи в реестре.

***

Не позволяет запускать не .exe файлы (например .bat) в качестве стартовых.

***

Для изменения переменных окружения, в том числе PATH:

  • APP.cameyo.exe -break
  • Редактируем \APP.cameyo.break\VirtApp.ini:
    • EnvVariables=Path=MyPath1;MyPath2;%ExistingValue%
  • APP.cameyo.exe -unbreak

***

Cameyo не позволяет править значения виртуального реестра внутри своего редактора. Возможность редактировать реестр реализована через загрузку «куста» в regedit.exe. Далее Cameyo отслеживает момент закрытия regedit.exe, после чего определяет изменения. Есть еще способы:

  1. Экспортируем ветку реестра из сборки в файл .reg;
  2. Редактируем .reg файл во внешнем редакторе;
  3. Удаляем эту ветку внутри сборки;
  4. Импортируем .reg файл в сборку.

Или

  • Получаем доступ к реестру в виртуальном окружении:
    APP.cameyo.exe -exec my_regedit.exe
  • Редактируем реестр
  • Применяем изменившиеся данные к файлу сборки:
    APP.cameyo.exe -repackage

***

При экспорте реестра может получиться невалидный .reg файл. Например строка (REG_SZ), содержащая символ «новой строки» (\n):

"Key"="Val
ue"

Cameyo на такой .reg файл будет ругаться. Если при импорте произошла ошибка, то:

  1. Закрываем и снова открываем файл образа в Cameyo;
  2. Будет видна часть все-таки импортированных из .reg файла данных, тех что до ошибки;
  3. Ищем это место во внешнем редакторе .reg файла, исправляем и пытаемся сделать импорт еще раз.

***

Иногда, если внутри сборки упаковано множество мелких файлов, то при попытке сохранить после изменения структуры файлов, попадаем в бесконечный показ окна «Сохранение». Или получаем сообщение об ошибке открытия файла (Cameyo после сохранения пере-открывает сборку). Но в последнем случае сборка часто рабочая :), нужно открыть ее в Cameyo еще раз самостоятельно. Сохраняйте файлы через «Сохранить как» с другим именем.

Скачать

Комментариев нет:

Отправка комментария