I have used the Desktop App Converter to convert my Win32 application to .appx
.
The converter failed to convert application icons correctly. Icon transparency was lost. While I have reported this (bug?) to Microsoft, meanwhile I'd like to try to convert the icons manually. And I want to generate the .appx
manually (using the makeappx
) in the end anyway. So I need to create the AppxManifest.xml
.
Problem is that the AppxManifest.xml
generated by the Desktop App Converter is not valid. All image paths point to non-existing files:
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10">
...
<Properties>
...
<Logo>Assets\AppStoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
<Resource uap:Scale="100" />
<Resource uap:Scale="125" />
<Resource uap:Scale="150" />
<Resource uap:Scale="200" />
<Resource uap:Scale="400" />
</Resources>
...
<Applications>
<Application Id="WinSCP" Executable="WinSCP.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements DisplayName="WinSCP" Description="WinSCP" BackgroundColor="transparent" Square150x150Logo="Assets\AppMedTile.png" Square44x44Logo="Assets\AppList.png">
<uap:DefaultTile Wide310x150Logo="Assets\AppWideTile.png" Square310x310Logo="Assets\AppLargeTile.png" Square71x71Logo="Assets\AppSmallTile.png">
There are no files like AppStoreLogo.png
(etc) in the Assets
folders, there are files like:
AppStoreLogo.scale-100.png
AppStoreLogo.scale-125.png
AppStoreLogo.scale-150.png
AppStoreLogo.scale-200.png
AppStoreLogo.scale-400.png
So the makeappx
fails to generate the .appx
using the generated manifest.
While I can obviously fix the manifest by pointing the paths to the scale-100
variant of the images, I feel that this is not the correct way.
The scaled images are the for a reason, for sure.
I can see these image and scales related elements:
There's the <Resources>
element in the manifest that lists all the scales.
There are also resources.*.pri
files, which reference the scaled images.
resources.pri
resources.scale-100.pri
resources.scale-125.pri
resources.scale-150.pri
resources.scale-200.pri
But I do not understand how this all goes together. What paths should I use in the manifest to maintain the scaled images?
It was probably some glitch in earlier versions of makeappx
.
When trying over a year later again, the makeappx
can now compile the AppxManifest.xml
generated by Desktop App Converter, even though it seems to be about the same as before.
(Desktop App Converter still fails to generate application icons correctly).