2016-06-21 2 views
1

Я использую последнюю версию установщика Qt 2.0.3 Я создал установщик для своего приложения, но когда я пытаюсь его установить, появляется следующее сообщение об ошибке: «Вы уже выбрали папку существует и содержит установку. Выберите другую цель для установки «Qt Installer, перезаписать предыдущую версию

Как я могу указать установщик Qt для перезаписывания старой версии? это официально поддерживается?

ответ

1

Используйте MaintenanceTool. Он находится в корневой папке установки qt

+1

Просьба уточнить. –

0

Немного поздно, но в любом случае.

Переписывание отключено из-за несоответствий при установке.
Посмотрите на это сообщение об ошибке: https://bugreports.qt.io/browse/QTIFW-482

Но, вы можете добиться этого, добавив следующее заявление в контроллере Script:

installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes); 

Пример сценария (sample.qs):

function Controller() 
{ 
    installer.autoRejectMessageBoxes(); 
    installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes); 

    // ... 
} 

Вот ссылка на документацию к контроллеру Scripting: http://doc.qt.io/qtinstallerframework/noninteractive.html

Теперь вы можете запустить программу установки с настроенным скриптом:

$ installer --script sample.qs 
+0

Это не работает. Это будет работать только в том случае, если вы устанавливаете в существующий каталог, в котором _not_ содержится инсталляция. – rationalcoder

+0

@rationalcoder: Я использовал его в производственном коде некоторое время назад, и он работает как шарм. Мне нужна была тихая переустановка и использование сценария, потому что он сделал трюк. Я не знаю, есть ли какие-либо изменения в Qt Installer Framework, которые больше не позволяют. С помощью мастера он не позволяет переустановке работать из-за существующей установки (см. Отчет об ошибке в моем ответе). – Azeem

+0

Итак, что происходит, когда вы запускаете мастер обычно? – rationalcoder

0

Нет, это официально не поддерживается какой-либо причине. Чтобы заставить его работать, вам нужно немного взломать. Я перечислил шаги, которые работают для меня в ответе за my question.

Смежные вопросы