public Assembly ResolveAssembly(string assemblyName)
{
Assembly assembly = null;
string assemblyPath = null;
if (_externalReferences.TryGetValue(assemblyName, out assemblyPath))
{
// When loading shared assemblies, load into the load-from context and load assembly dependencies
assembly = Assembly.LoadFrom(assemblyPath);
}
else if (TryResolvePrivateAssembly(assemblyName, out assemblyPath))
{
assembly = Assembly.Load(File.ReadAllBytes(assemblyPath));
assembly.MapCodeBase(assemblyPath);
}
else if (_packageAssemblyResolver.TryResolveAssembly(assemblyName, out assemblyPath))
{
// Use LoadFile here to load into the correct context
assembly = Assembly.LoadFile(assemblyPath);
}
else if (_extensionSharedAssemblyProvider.TryResolveAssembly(assemblyName, out assembly))
{
return(assembly);
}
return(assembly);
}