Application not listed in Control Panel after installation with Qt Installer Framework
-
QtIFW version: 4.10
Qt version: 6.9
OS: Windows 11 Pro (64-bit)I created an installer using Qt Installer Framework (QtIFW) for my application let's say "Appl".
Everything installs correctly and the app runs fine.However, when I install it to C:\Program Files (using @ApplicationsDir@),
the application does not appear in:Control Panel → Programs and Features
Settings → Apps → Installed AppsWhen I install to the user directory (e.g., @HomeDir@/), the app installs successfully and appears in both the places.
I Have Tried setting <RequiresAdminRights>true</RequiresAdminRights> in my package.xml and confirmed that the installer runs with admin privileges (UAC prompt shown) .Target directory is set to @ApplicationsDir@ and verified that the uninstaller (MaintenanceTool.exe) is created in the install folder but when checked under registry
given below entry is not created.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallconfig.xml
<?xml version="1.0" encoding="UTF-8"?> <Installer> <Name>APPL</Name> <Version>1.0.0</Version> <Title>Appl Installer</Title> <Publisher>My Company.</Publisher> <ProductUrl>https://www.link.com</ProductUrl> <Logo>logo.png</Logo> <Banner>banner_image.png</Banner> <TargetDir>@ApplicationsDir@</TargetDir> <StartMenuDir>APPL</StartMenuDir> <WizardDefaultWidth>780</WizardDefaultWidth> <WizardDefaultHeight>420</WizardDefaultHeight> <WizardStyle>Modern</WizardStyle> <InstallerApplicationIcon>logo</InstallerApplicationIcon> <InstallerWindowIcon>windowicon.png</InstallerWindowIcon> <StyleSheet>stylesheet.qss</StyleSheet> <ControlScript>configscript.qs</ControlScript> </Installer>There is only one component present.
package.xml<?xml version="1.0" encoding="UTF-8"?> <Package> <Name>com.MyComp.appl</Name> <DisplayName>Appl</DisplayName> <Description>Description</Description> <Version>1.0.0</Version> <ReleaseDate>2025-10-07</ReleaseDate> <Default>true</Default> <Script>packagescript.qs</Script> <Licenses> <License name="License Agreement" file="license.txt" /> </Licenses> <RequiresAdminRights>true</RequiresAdminRights> </Package>I am also attaching the corresponding packagescript.qs and configscript.qs
packagescript.qsfunction Component() { if (!installer.isCommandLineInstance()) gui.pageWidgetByObjectName("LicenseAgreementPage").entered.connect(changeLicenseLabels); } changeLicenseLabels = function() { page = gui.pageWidgetByObjectName("LicenseAgreementPage"); page.AcceptLicenseLabel.setText("I agree"); } Component.prototype.createOperations = function() { component.createOperations(); var appExe = "@TargetDir@/appl.exe"; var startMenuShortcutPath = "@AllUsersStartMenuProgramsPath@\\APPL\\APPL.lnk"; component.addElevatedOperation("CreateShortcut", appExe, startMenuShortcutPath); };configscript.qs
function Controller() { installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false); } Controller.prototype.ComponentSelectionPageCallback = function() { var page = gui.pageWidgetByObjectName("ComponentSelectionPage"); page.title = "<div align='center'>Select Components</div>"; // funtion to disable NEXT button if no component is selected. function updateNextButtonState() { var components = installer.components(); var anySelected = false; for (var i = 0; i < components.length; ++i) { if (components[i].isChecked()) { anySelected = true; break; } } gui.buttonById(QWizard.NextButton).enabled = anySelected; } gui.buttonById(QWizard.NextButton).enabled = false; installer.componentSelectionChanged.connect(updateNextButtonState); updateNextButtonState(); };How can I ensure that Qt Installer Framework correctly registers the uninstaller, so the app appears in Control Panel / Programs and Features or Windows Settings → Installed Apps when installed to locations like C:\Program Files ?
Are there any additional step or metadata needed or did I miss anything?
-
C Christian Ehrlicher moved this topic from General and Desktop on