Freigeben über


Missing default 200% logos and Appx3210

Last week, I got this error when building my app that I ported from Windows 8.1 Universal app to UWP.

 

error APPX3210: App manifest references the image 'Assets\Logo.png' which does not have a candidate in main app package.

 

The manifest referenced Logo.png indeed. But the file in the package was logo.scale-100.png. When I renamed logo.scale-100.png to logo.png (what the manifest asked for), the manifest errored out with a red cross. When I then used the manifest editor to point to logo.png, Visual Studio renamed it to logo.scale-100.png. So back to square 1: build the store package and error happens.

Sooo. It appears that the default scale has changed to 200%. OK. Fine. And? Why does that matter?

It matters because the main app package contains resources for whatever the default scale is. And for UWP, the default is 200. Since I use app bundles, my Logo-100.png ended up in a satellite app package, and the main package does not have any logo (since I didn't provide the default 200). Hence, my app would not be installable on a system that requires scale-200.

When I renamed the file to Logo.png, the editor complained because it assumed that images without qualifiers were in the default scale (200), and my logo didn't have the correct dimensions for that scale.

There is an explanation for this in the porting doc, but it is a little buried:

"The default asset scale for Universal Windows apps is 200. If your project includes assets not scaled at 200, you will need to add a <UapDefaultAssetScale> element with the value of the scale of your assets to this PropertyGroup. Learn more about assets and scales."

[Thanks to Srdjan Jovcic for his explanation.]