Извлечение файлов при начальной настройке, а не в конце - PullRequest
5 голосов
/ 28 апреля 2009

Я использую последнюю версию inno, которая делает следующее во время установки:

  1. Выполните проверку зависимостей, чтобы увидеть, что установлено
  2. Устанавливает зависимости, которые еще не установлены (.net, sql server, directx и т. Д.)
  3. Установите приложение и файлы из раздела [Files] (wpReady)
  4. Проверяет SQL Server на наличие ранее установленной базы данных и создает / обновляет таблицы и т. Д.

Шаг [4] создает базу данных, таблицы и т. Д. И работает, только если SQL Server уже установлен, поэтому это делается на шаге [2].

Выходной каталог содержит созданный файл setup.exe, и я вручную помещаю дополнительную папку зависимостей, содержащую файлы, необходимые для упомянутых выше шагов [1,2 и 4].

Это прекрасно работает, но я хотел бы создать только один exe-файл, который включает все зависимости и извлекает зависимости ДО wpReady и до шага [1] выше.

Зависимости находятся в разделе [Files], но эти файлы не извлекаются, пока программа установки не выполнит сообщение wpReady после того, как программа установки проверит все формы и попытается установить файлы.

Я использую следующее, которое добавляет то, что мне нужно, в setup.exe

[Files]
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall

Каков наилучший способ извлечь файлы во временный каталог до wpReady, или я должен сначала выполнить действия wpReady, а затем приступить к установке зависимостей (хотя и не идеально).

Ответы [ 2 ]

11 голосов
/ 28 апреля 2009

Вы можете использовать функцию ExtractTemporaryFile() в функции события PrepareToInstall, чтобы извлечь любой файл из раздела [Files] в {tmp} ранее, и он будет удален после завершения установки. Вместе со сценариями и различными хуками Inno Setup дает вам практически все, чего можно достичь.

Ознакомьтесь с разделом «Сценарии Паскаля» справки Inno Setup, в частности «Справочник по функциям поддержки». Там вы найдете документацию для ExtractTemporaryFile() и более.

0 голосов
/ 11 декабря 2010

{TMP}

Временный каталог, используемый программой установки или удаления. Это не значение пользовательской переменной среды TEMP. Это подкаталог временного каталога пользователя, который создается программой установки или удаления при запуске (с именем, подобным «C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp»). Все файлы и подкаталоги в этом каталоге удаляются при выходе из программы установки или удаления. Во время установки это в первую очередь полезно для извлечения файлов, которые должны быть выполнены в разделе [Run], но не нужны после установки.

...