Я пытаюсь использовать Qt Installer Framework (версия 3.1 в windows) для создания установщика моего пакета . Пакет, который я использую для тестирования, - это средство просмотра изображений, которое может загружать пользовательский формат файла: .cjpg (который по сути такой же, как jpg, но с другим именем). Этот проект можно найти здесь .
Файл pacakge xml
включает в себя следующий скрипт:
function Component()
{
// default constructor
}
Component.prototype.createOperations = function()
{
component.createOperations();
if (systemInfo.productType == "windows")
{
component.addOperation("Execute","{0,3010}","@TargetDir@/VC_redist.x64.exe","/quiet","/norestart");
component.addOperation("CreateShortcut",
"@TargetDir@/image_view.exe",
"@StartMenuDir@/image_view.lnk",
"iconPath=@TargetDir@/image_view.ico")
component.addOperation("CreateShortcut",
"@TargetDir@/image_view.exe",
"@DesktopDir@/image_view.lnk",
"iconPath=@TargetDir@/image_view.ico")
component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico")
}
}
Этот скрипт устанавливает VC_redist, потому что я компилирую с использованием MSVCкомпилятор и, насколько я читал, нужен. Кроме того, он создает рабочий стол и ярлыки меню «Пуск». Эти три части работают нормально. Тем не менее, часть с ассоциацией нового типа файла (.cjpg) с программой не работает (значок не отображается, и программа не открывается, когда вы нажимаете файл). Я следовал этому руководству , чтобы добраться до этой точки. Единственное различие, которое я ценю в отношении операции с регистрацией файлов, заключается в том, что в учебнике определены идентификатор значка и идентификатор ProgId. Если я попытаюсь изменить эту часть на:
component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico",
"ProgId=ImageViewer.cjpg")
Файл все еще не связан должным образом (значок не отображается, и программа не открывается, когда вы нажимаете файл). Если я пытаюсь изменить эту часть на:
component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico", 0,
"ProgId=ImageViewer.cjpg")
или:
component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico", "iconId=0",
"ProgId=ImageViewer.cjpg")
, я получаю следующую ошибку при установке:
Error during installation process (com.vendor.image_view):
Invalid arguments in RegisterFileType: 6 arguments given, 2 to 5 arguments expected in the form: <extension> <command> [description[contentType[icon]]].
Любые идеи о том, какправильно связать расширение файла с предоставленным значком файла и программой?