Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата 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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:13, 16-11-2011 | #1231