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:
- I remove the .dll from the project for incorrect architectures
- I build for a single architecture only
- I re-insert the previously removed .dll to the project
I'd like to find a way to avoid this pain.
Try this solution: Open menu
Project
, thenProject properties
. TabBuild
and set differentOutput path
values(paths) for the differentPlatform target
.