Цитата Devils0411:
Код:
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_32bit.msi\" /qn"
RunProgram="%%P:hidcon:cmd /c msiexec /i \"%%T\\test_64bit.msi\" /qn"
»
|
Начнем постепенно:
1 Запуск
msi из модуля не требует использования
msiexec, упрощаем
Код:
RunProgram="%%P:hidcon:cmd /c \"%%T\\test_32bit.msi\" /qn"
RunProgram="%%P:hidcon:cmd /c \"%%T\\test_64bit.msi\" /qn"
2 Для запуска не требуется
cmd, ибо это не команды интерпретатора CMD, а если нет окна консоли, то и префикс не нужен, упрощаем
Код:
RunProgram="%%P:\"%%T\\test_32bit.msi\" /qn"
RunProgram="%%P:\"%%T\\test_64bit.msi\" /qn"
3 Переменная
%%T - это текущая папка модуля и указывать ее в команде запуск в данном случае необходимости нет, а, т.к., в именах пробелов нет, то и кавычки не нужны, упрощаем
Код:
RunProgram="%%P:test_32bit.msi /qn"
RunProgram="%%P:test_64bit.msi /qn"
4 Чтобы каждый из
msi отработал только на системе с нужной разрядностью, используем соответствующие префиксы, а не переменную
%%P
Код:
RunProgram="x86:test_32bit.msi /qn"
RunProgram="x64:test_64bit.msi /qn"
Цитата Devils0411:
Тогда смысл переменной %%P? »
|
Если Вы можете переименовать свои файлы msi, например, в
Код:
test_x86bit.msi
test_x64bit.msi
То можно две команды (см. п.4) заменить одной
Код:
RunProgram="%%P:test_%%Pbit.msi /qn"