delphimsixdelphi-12-athensdelphi-community-edition

Can't create MSIX in Delphi 12, as build type always reverts to "windows 32-bit - Normal"


Every time I open the "deployment / provisioning" tab in the build configuration, it always reverts to a build type of "windows 32-bit - Normal", no matter how many times I change it to "windows 32-bit - Application Store".

This means that when I open the "Project - Deployment" page it there is no option to create an msix file, which means I can't create one.

I think there are some restrictions in the build configuration (debug symbols must not be included for example), but I don't know what these are, and I've tried to set everything as you would expect.

I have tried this with an existing project and a newly created project.

I'm on Delphi 12 community edition and Windows 11.


Solution

  • This happens because the Application Store (MSIX) build type in Delphi is not a simple toggle but a separate platform configuration that must both exist in the project and be validated by the IDE, and if either condition fails Delphi silently falls back to Windows 32-bit – Normal, which is expected behavior and not a bug; the IDE UI lets you select the Store build type, but if the underlying Win32 Store configuration is missing from the .dproj, read-only, or deemed invalid due to missing MSIX tooling, the selection cannot be persisted and is immediately reverted.

    The most common cause is that the project only contains standard Win32 configurations (Debug/Release/Normal), so the Provisioning page is effectively pointing at a configuration that does not exist; the correct fix is not to keep re-selecting the dropdown, but to explicitly create a Win32 configuration intended for MSIX and base it on Release so it satisfies Store requirements.

    Create the configuration explicitly:

    Project → Build Configurations → Add
    Base on: Release
    Platform: Windows 32-bit
    

    Then select that configuration and save the project so it is written into the .dproj.

    The second required condition is that Delphi must be able to validate MSIX packaging, which depends on the Windows SDK; if makeappx.exe or signtool.exe are missing, Delphi marks the Store configuration as unusable and reverts to Normal without an error. Verify that the SDK tools exist:

    C:\Program Files (x86)\Windows Kits\10\bin\<version>\x64\makeappx.exe
    C:\Program Files (x86)\Windows Kits\10\bin\<version>\x64\signtool.exe
    

    If they are missing, install or repair a Windows 10/11 SDK and restart Delphi.

    MSIX also requires a non-Debug build, so the active configuration must be Release-based with debug symbols disabled; Debug configurations are allowed to appear in the UI but are rejected for Store packaging and trigger the same fallback.

    After these conditions are met, reopen:

    Project → Options → Deployment → Provisioning
    

    Select Windows 32-bit – Application Store, and it will persist, and the Project → Deployment page will expose MSIX creation options.

    In short, the reversion happens because Delphi cannot bind the Provisioning UI to a valid Store configuration, and the fix is to explicitly create a Release-based Win32 Store configuration and ensure the Windows SDK MSIX tools are installed, after which the IDE behaves correctly and MSIX packaging becomes available.

    This should probably fix it. If not, it might be a Community vs Pro issue.