IoC component registration
This is a fascinating solution. I kept looking at it and thinking "There must be an easier way!" but every possible solution I came up with had a fatal flaw.

All I really have, then, is nitpicking:

public static IEnumerable&lt;Assembly&gt; Assemblies =&gt; AssemblyNames
        .Select(an =&gt; Load(an))


Can be simplified to:

public static IEnumerable&lt;Assembly&gt; Assemblies =&gt; AssemblyNames
    .Select(Load)


SolutionAssemblyNames is looking fairly dense. I'd add 1 line of whitespace between each property to make it a bit more readable.