Referencing external assemblies using MCML
MCML is Windows Media Center Markup Language. You use it to define the GUI for your Windows Media Center applications.
I've been banging my head against the wall trying to get a reference to a .NET assembly to work in MCML. The example in the documentation uses the syntax:
xmlns:cor="assembly://MSCorLib/System"
Where MSCorLib is the name of the assembly in the Global Assembly Cache.
This worked fine for me where the assembly contained the current Media Center Application:
xmlns:ext="assembly://MceAppAssembly/SomeNamespace"
However when I wanted to reference a different external assembly (that was also in the GAC) I was getting an error loading the MCML page, indicating that the assembly could not be loaded.
In the end I found out that I needed to use a strong assembly name:
xmlns:ext="assembly://ExternalAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0123456789abcdef/SomeNamespace"
I guess this is pretty obvious, but I'm also guessing that I won't be the only one to waste an hour or so on this. The documentation doesn't give an example like this (just the weak named reference), although it does give strong named examples for resource references.