You can check the client version from C# in your app via:
string SLVersion = Environment.Version.ToString();
And then prompt the user to download the newest version if they do not have Silverlight 5.
If you know what in your app is causing the app to get stuck while loading, you can hold off on loading until the version has been validated, and present the user with a message saying the app is not supported if they choose not to upgrade.
Silverlight.js. The API provides a method
Silverlight.isInstalled() that you can use to check for specific installed versions by passing the version number as a parameter, or you can pass
null to check for any installed version.
Hope this helps.