Found the answer here: http://dailydotnettips.com/2011/09/06/importconstructor-to-inject-constructor-mef/
The AllowDefault = true for an import will set the object to its default value (null for objects) when it is unavailable in the Container thus relaxing the runtime exception to occur.
[ImportingConstructor]
public ExportContainer([Import(AllowDefault=true)]IService service)
{
this.service= service;
}
So I was able to ignore Assembly A when I added all the assemblies to the AggregateCatalog. And this made Application 2 work as wanted!