protected virtual Assembly ForName(string assembly, bool throwOnError)
{
Assembly a = null;
try
{
if (assembly.IndexOfAny(new char[] {'/', '\\'}) != -1)
a = Assembly.LoadFrom(assembly);
else
a = LoadAssemblyFromGac(assembly);
}
catch (FileNotFoundException /*ignored*/)
{
return LoadAssemblyFromLibPaths(assembly, throwOnError);
}
catch (BadImageFormatException e)
{
if (throwOnError)
throw new ApplicationException(string.Format(Boo.Lang.Resources.StringResources.BooC_BadFormat, e.FusionLog), e);
}
catch (FileLoadException e)
{
if (throwOnError)
throw new ApplicationException(string.Format(Boo.Lang.Resources.StringResources.BooC_UnableToLoadAssembly, e.FusionLog), e);
}
catch (ArgumentNullException e)
{
if (throwOnError)
throw new ApplicationException(Boo.Lang.Resources.StringResources.BooC_NullAssembly, e);
}
return a ?? LoadAssemblyFromLibPaths(assembly, false);
}