Я использовал конвертер приложений для настольных ПК, чтобы преобразовать свое приложение Win32 в .appx
.
Конвертер не смог правильно преобразовать значки приложений. Прозрачность значка была потеряна. Хотя я сообщил об этом (ошибке?) в Microsoft, тем временем я хотел бы попытаться преобразовать значки вручную. И я все равно хочу сгенерировать .appx
вручную (используя makeappx
) в конце. Поэтому мне нужно создать файл AppxManifest.xml
.
Проблема в том, что AppxManifest.xml
, сгенерированный конвертером настольных приложений, недействителен. Все пути к изображениям указывают на несуществующие файлы:
<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">
В папках Assets
нет файлов типа AppStoreLogo.png
(и т.д.), есть файлы вида:
AppStoreLogo.scale-100.png
AppStoreLogo.scale-125.png
AppStoreLogo.scale-150.png
AppStoreLogo.scale-200.png
AppStoreLogo.scale-400.png
Таким образом, makeappx
не может сгенерировать .appx
, используя сгенерированный манифест.
Хотя я, очевидно, могу исправить манифест, указав пути к варианту изображений scale-100
, я чувствую, что это неправильный способ.
Масштабированные изображения, безусловно, не просто так.
Я вижу эти элементы, связанные с изображением и масштабами:
В манифесте есть элемент
<Resources>
, в котором перечислены все шкалы.Есть также файлы
resources.*.pri
, которые ссылаются на масштабированные изображения.resources.pri resources.scale-100.pri resources.scale-125.pri resources.scale-150.pri resources.scale-200.pri
Но я не понимаю, как это все сочетается. Какие пути следует использовать в манифесте для сохранения масштабированных изображений?