Windows App Cert Kit -
| | Meaning | Store Action | | :--- | :--- | :--- | | Pass | Meets requirement. | Acceptable. | | Fail | Critical requirement violated. | Rejection. Must fix. | | Warning | Non-critical issue or best practice. | Review; may cause rejection if severe. | | Not Applicable | Test skipped (e.g., background task test for app with no background tasks). | Ignore. | 5. Common Failures & Fixes (Troubleshooting Matrix) | Failure Message | Likely Cause | Fix | | :--- | :--- | :--- | | "App cannot use more than 250 MB of private memory" | Memory leak or oversized cache on launch. | Use Memory Profiler in Visual Studio; implement IDisposable correctly. | | "Binary contains vulnerable cryptography" | Use of System.Security.Cryptography.SHA1CryptoServiceProvider | Replace with SHA256CryptoServiceProvider or higher. | | "Unsupported API in UWP app" | P/Invoke to kernel32!CreateFile | Use Windows.Storage.StorageFile API instead. | | "App start time exceeds threshold" | Synchronous initialization on UI thread. | Move startup logic to background thread; use splash screen to mask load. | | "Missing supported users element" | Package manifest missing uap:SupportedUsers | Add <SupportedUsers>singleUser</SupportedUsers> (or multipleUsers ) to manifest. | | "DLL hijacking risk" | LoadLibrary uses relative path without safe search. | Use absolute path or SetDllDirectory("") and LoadLibraryEx with LOAD_LIBRARY_SEARCH_* flags. | 6. Advanced: Automating WACK in Azure DevOps Create a pipeline step using the Windows App Certification Kit task (available in the Marketplace) or a PowerShell script.
certrun.exe -Test AppCertKit -Task DesktopAppCertification ^ -AppxPackagePath "C:\Build\MyApp.msix" ^ -ReportOutputPath "C:\TestResults\WACKReport.xml" windows app cert kit
certrun.exe -Test AppCertKit -Task UWPAppCertification ^ -AppxPackagePath "C:\Build\MyUWP.appx" ^ -LaunchWinRTApp -AppxPackageUser "MyUser" The report categorizes results as: | | Meaning | Store Action | |