Я работаю с установщиком Qt для развертывания моего программного обеспечения на машинах Windows. Пока все работает как положено: я могу установить вещи и зарегистрировать расширения файлов быть запущенным с моим программным обеспечением.
Допустим, мое приложение называется MyApp и расширение .MyApp.
Вот код, который я использую для этого в installscript.qs сценарий:
Component.prototype.createOperations = function()
{
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation(
"RegisterFileType",
"myapp",
"@TargetDir@\\MyApp.exe" + " \"%1\"",
"Company - MyApp file",
"application/this.is.awesome",
"@TargetDir@\\MyApp.exe" + "," + 1,
"ProgId=Company.MyApp." + "myapp");
}
}
Теперь, когда я удаляю приложение с помощью деинсталлятора Qt, оно корректно удаляет файлы с моего компьютера, но регистрация типа файла остается в настройках Windows и при повторной переустановке приложения установщик просто добавляет регистрацию другого типа файла независимо от существующих. Таким образом, на данный момент, если я установлю / удалю свое приложение 20 раз, у меня будет 20 копий регистрации того же типа файла.
Есть идеи, что происходит?
Задача ещё не решена.
Других решений пока нет …