Caveats about DeploymentCatalog

The information below was wrapped up in my previous post on DeploymentCatalog. As a bunch of folks have been asking questions on this, it seems worth to rip out on it's own.

A few caveats about DeploymentCatalog.

DeploymentCatalog is a very exciting addition to the MEF box. There are a few caveats to it’s usage.

  • Does not support Silverlight cached assemblies. (Otherwise known as TPEs). This means that DC will not download referenced assemblies that are packaged with the Silverlight caching infrastructure (.extmap).
    • This includes cached assemblies in the main xap.
    • If the cached assemblies are referenced by the main app, they will be available to the assemblies in a downloaded XAP.
    • You can create shared xaps which contain assemblies to be used by other xaps and download those with the DeploymentCatalog. As long as the shared xaps are downloaded first they will be available to others.
    • If you do decide to use either of the previous approaches, be sure to set your references to “Copy Local = False” in your XAPs otherwise you will be embedding the shared assemblies again.Does not support localization.
    • We are looking into cached assembly support in the future.
  • Does not support non-embedded resources.
  • Local resource references in XAML also are not supported i.e. using pack URIs. You can programatically access embedded resources though.

Comments

  • Anonymous
    April 13, 2010
    Another important limitation to mention would be the fact that different xaps cannot contain different version of the same assembly. By the way, any plan on supporting this ? I believe it's more of a Silverlight limitation...

  • Anonymous
    September 29, 2010
    Yes, it's silverlight that only supports a single appdomain

  • Anonymous
    October 19, 2010
    It's kind of an issue though when third party plugins have both references to different versions of the same assembly. Say the silverlight toolkit or reactive extensions for example...