private static Assembly ResolveAssembly(object sender, ResolveEventArgs resolveEventArgs)
{
var assemblyname = resolveEventArgs.Name.Substring(0, resolveEventArgs.Name.IndexOf(',')) + @".dll";
// System.Reactive.Debugger.dll is something that wont find hence return null
if (string.Compare(assemblyname, @"system.reactive.debugger.dll", StringComparison.InvariantCultureIgnoreCase) == 0)
{
return null;
}
var driverDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
if (driverDirectory != null)
{
var assemblies = Directory.EnumerateFiles(driverDirectory, assemblyname);
foreach (var path in assemblies)
{
return Assembly.LoadFrom(path);
}
var root = Path.Combine(Path.GetTempPath(), @"LINQPad\");
assemblies = Directory.EnumerateFiles(root, assemblyname, SearchOption.AllDirectories);
foreach (var path in assemblies)
{
return Assembly.LoadFrom(path);
}
var dataContextFolder = AppDomain.CurrentDomain.BaseDirectory;
assemblies = Directory.EnumerateFiles(dataContextFolder, assemblyname, SearchOption.AllDirectories);
return assemblies
.Select(Assembly.LoadFrom)
.FirstOrDefault();
}
return null;
}