I believe this is related to how Silverlight works.
Based on my understanding, when opening a web page containing a Silverlight
application it "downloads" the .xap file containing the
Silverlight application and executes it. This is also true for a
Then when Prism tries to load modules in a Silverlight
application and those modules are stored in a different .xap file than the one containing the main project, they need to be "downloaded" as only the main
.xap file was retrieved by the web page. In order to do this,
Prism uses Silverlight's capabilities to obtain those .xap
files and, based on my understanding, if the .xap files are not present if your browser's cache
Silverlight will request them to its hosting server.
This seems to be where your application is failing. The main .xap
file is loaded by the browser when the html page is opened. However, when the modules need to be loaded
Silverlight tries to reach its hosting server to obtain them, but there is no server to respond its requests (in the hosted version, the requests are answered by the
As a workaround, you could change your application for the demo version to have a reference to your modules' projects so that their assemblies are included in the main .xap
file of your application. Take into account that you will also need to change your
ModuleCatalog (specifically the Ref property of each module) as the assemblies will now be in the main .xap
and not in their original ones.
I hope you find this useful,