Windows 8.1 App Certification fails for Platform appropriate files

744 views Asked by At

My Windows Store App works for all architectures (x86, x64, arm) and is published on the Store. But when building App Package (right-click on project, Store, Create App Package) Windows App Certification Kit 3.1 for Windows 8.1 passed all the tests except for Platform appropriate files test:

  • Error Found: The platform appropriate files test detected the following errors:
    • File fmodexMetroL64.dll is designed only for x64 processor type; AppX manifest declares 'ProcessorArchitecture' as x86.
    • File fmodexMetroLarm.dll is designed only for arm processor type; AppX manifest declares 'ProcessorArchitecture' as x86.
    • File fmodexMetro64.dll is designed only for x64 processor type; AppX manifest declares 'ProcessorArchitecture' as x86.
    • File fmodexMetroarm.dll is designed only for arm processor type; AppX manifest declares 'ProcessorArchitecture' as x86.
  • How to fix: Ensure that binary file architecture is compatible with the ProcessorArchitecture attribute specified within the AppX manifest. http://go.microsoft.com/fwlink/?linkid=294935

The issue here is I have .dll files for each architecture and they get added for any architecture build, no matter what I try. I haven't found how to tell Visual Studio some .dll should only be included for a specific architecture build and not others.

My AppX manifest doesn't declare any file at all and doesn't declare any 'ProcessorArchitecture' at all.

My current ugly solution, each time I want to build:

  1. I remove the .dll from the project for incorrect architectures
  2. I build for a single architecture only
  3. I re-insert the previously removed .dll to the project

I'd like to find a way to avoid this pain.

2

There are 2 answers

0
crea7or On

Try this solution: Open menu Project, then Project properties. Tab Build and set different Output path values(paths) for the different Platform target.

0
NBoymanns On

I had the same problem, this solution helped for me:

Open your project, and select the Solution,Then open menu Project and select Properties.

  • Inside the Property Pages go to -> Configuration Properties.

On this page you can set the Platform targets.