iexpress жестко запрограммированная папка назначения для извлечения?

Я использую iexpress, чтобы сделать самораспаковывающийся исполняемый файл. Есть ли способ, которым я могу жестко запрограммировать папку назначения для извлечения (предпочтительно во временную папку, где-то ранее), чтобы во всплывающем окне извлечения не отображалось "Пожалуйста, укажите место, куда вы хотите поместить извлеченный файл". диалог?

2 ответа

Там нет прямого способа сделать это. (Вы можете увидеть мой другой ответ для более подробного объяснения об этом.)

Самым простым решением является создание архива IExpress, который запускает "программу установки", которая на самом деле представляет собой просто пакетный файл, который копирует извлеченные файлы туда, где они нужны.

В IExpress вы запускаете командный файл, например: cmd /c persist.bat, А также persist.bat выглядит примерно так:

@echo off
xcopy /y * "%temp%\persistent\"
del /f "%temp%\persistent\persist.bat"

(Последняя строка имеет смысл скрыть тот факт, что вы использовали этот командный файл для копирования извлеченного архива.)

Да, это возможно благодаря использованию файла.INF, когда вы выбираете "Извлечь файлы и запустить команду установки". Вы должны установить файл.INF в качестве программы установки, а в разделе DestinationDirs вы должны указать путь к каталогу, в который вы хотите перейти. Вот пример файла.INF:


[version]  
signature="$CHICAGO$"

[DefaultInstall]
CopyFiles=install.files

[DestinationDirs]
install.files=-1,"C:\Program Files\MyCustomDir"

[install.files]    
MyFile1.txt
MyFile2.bmp

Таким образом, этот пример показывает, что установщик установит в C:\Program Files\MyCustomDir. Файлы в файле install.files должны содержать список всех файлов, которые вы хотите скопировать в эту папку. Они должны быть включены в ваш установщик, когда вы выбираете файлы для добавления.

Другие вопросы по тегам