This project has moved and is read-only. For the latest updates, please go here.


Win8 fails certification caused by Microsoft.Practices.ServiceLocation


MVVMLight references Microsoft.Practices.ServiceLocation. But Microsoft.Practices.ServiceLocation.dll is not build for Metro apps. It uses APIs that are not available in Metro / Windows 8 apps.

When running the App Certification Kit on a new clean MVVM Light Windows 8 app it will fail with the following message:
Error: This application failed the supported API check.
API System.Threading.Thread in System.Threading is not supported. Microsoft.Practices.ServiceLocation.dll calls this API.

The solution is to remove the reference to Microsoft.Practices.ServiceLocation from the MVVM Light Extras project. Rebuild, fix the errors (removing the use of the interface). Then your MVVM app will pass certification.

file attachments

Closed Oct 13, 2014 at 1:57 PM by lbugnion


lbugnion wrote May 21, 2012 at 7:58 AM


I fixed the issue, please use the attached DLLs. I already published an update in Nuget, so if you used this, you can use the "update" feature of Nuget. I will publish a post and the files to my blog today.


mpost wrote Jun 4, 2012 at 10:37 PM

The issue seems not to be fixed. The reference to Microsoft.Practices.ServiceLocation is still there in the latest source code checkin for the Win8 release preview.

lbugnion wrote Jun 4, 2012 at 11:47 PM

Yes it is still there however the DLL is now a Release mode DLL, which fixes the issues above. Multiple apps using MVVM Light have passed certification thanks to the fix.

Let me know if you have specific issues which prevent your app to pass certification.


seweryn1278 wrote Nov 20, 2012 at 6:33 PM

There is a problem with installing ClickOnce Application.
Microsoft.Practices.ServiceLocation.dll require GAC during installation.