Чтоб уж до конца разобраться. По зависимости от платформы.
Приведу пример:
Код:
;!@Install@!UTF-8!
;Версия файла
SetEnvironment="Vers= 1.0"
SetEnvironment="Name=Test"
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
;ExtractTitle="Распаковка файлов..."
;ExtractDialogText="Придется подождать..."
;FinishMessage="%Name%%Vers% установлен!"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_32bit.msi\" /qn"
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_64bit.msi\" /qn"
;!@InstallEnd@!
Запустив данный sfx-файл, отрабатываются оба
RunProgram, т.е. для того чтобы запустить нужную команду в нужной платформе, нужно указывать так?:
Код:
;!@Install@!UTF-8!
;Версия файла
SetEnvironment="Vers= 1.0"
SetEnvironment="Name=Test"
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
;ExtractTitle="Распаковка файлов..."
;ExtractDialogText="Придется подождать..."
;FinishMessage="%Name%%Vers% установлен!"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_32bit.msi\" /qn"
;!@InstallEnd@!
;!@Install@!UTF-8!:x64!
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_64bit.msi\" /qn"
;!@InstallEnd@:x64!
Тогда смысл переменной
%%P?
P.S. Разобрался. Достаточно сделать вот так:
Код:
;!@Install@!UTF-8!
;Версия файла
SetEnvironment="Vers= 1.0"
SetEnvironment="Name=Test"
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
;ExtractTitle="Распаковка файлов..."
;ExtractDialogText="Придется подождать..."
;FinishMessage="%Name%%Vers% установлен!"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
RunProgram="x86:hidcon:cmd /c msiexec /i \"%%T\\test_32bit.msi\" /qn"
RunProgram="x64:hidcon:cmd /c msiexec /i \"%%T\\test_64bit.msi\" /qn"
;!@InstallEnd@!