// Token: 0x0600003B RID: 59 RVA: 0x00003A2C File Offset: 0x00001C2C private static bool LoadSatelliteByPath(AssemblyName resolve, string fullPath, bool isLog, bool first, out Assembly resolvedAssembly) { AssemblyName assemblyName = AssemblyName.GetAssemblyName(fullPath); if (!AssemblySatelliteResolver.SatelliteMatchesDefinition(resolve, assemblyName)) { if (isLog) { AssemblySatelliteResolver.log.DebugFormat("Resolving \"{0}\" does not match \"{1}\"", resolve, assemblyName); } resolvedAssembly = null; return(false); } Exception ex = null; Assembly assembly = null; if (first) { try { assembly = Assembly.Load(assemblyName); } catch (FileNotFoundException) { } catch (FileLoadException) { } catch (Exception ex) { } } if (assembly == null) { if (ex != null) { AssemblySatelliteResolver.log.DebugFormat("Cannot load \"{0}\", falling back to load-from. {1}", assemblyName, ex); } assembly = Assembly.LoadFrom(fullPath); } try { if (AssemblySatelliteResolver.ResolveCnt.GetOrAdd(assembly.FullName, (string _) => new AssemblySatelliteResolver.IntRef(0)).Increment() == 1 || isLog) { Uri assemblyLocation = AssemblySatelliteResolver.GetAssemblyLocation(assembly); string text = (assemblyLocation != null && assemblyLocation.IsAbsoluteUri) ? AssemblySatelliteResolver.NormalizePath(assemblyLocation.LocalPath) : string.Empty; if (!AssemblyName.ReferenceMatchesDefinition(resolve, assembly.GetName()) || !fullPath.Equals(text, StringComparison.Ordinal)) { AssemblySatelliteResolver.log.ErrorFormat("Resolved \"{0}\" as \"{1}\" at \"{2}\"", resolve, assembly, text); } } } catch (Exception ex2) { AssemblySatelliteResolver.log.ErrorFormat("Error reporting assembly-resolved. {0}", ex2); } resolvedAssembly = assembly; return(true); }
private static string GetSymbolicLocation(Assembly assembly) { Uri assemblyLocation = AssemblySatelliteResolver.GetAssemblyLocation(assembly); if (assemblyLocation != (Uri)null) { return(assemblyLocation.ToString()); } if (assembly.IsDynamic) { return("«dynamic»"); } return(assembly.GlobalAssemblyCache ? "«GAC»" : "«unknown»"); }
private static bool LoadSatelliteByPath( AssemblyName resolve, string fullPath, bool isLog, bool first, out Assembly resolvedAssembly) { AssemblyName assemblyName = AssemblyName.GetAssemblyName(fullPath); if (!AssemblySatelliteResolver.SatelliteMatchesDefinition(resolve, assemblyName)) { if (isLog) { AssemblySatelliteResolver.log.DebugFormat("Resolving \"{0}\" does not match \"{1}\"", (object)resolve, (object)assemblyName); } resolvedAssembly = (Assembly)null; return(false); } Exception exception = (Exception)null; Assembly assembly = (Assembly)null; if (first) { try { assembly = Assembly.Load(assemblyName); } catch (FileNotFoundException ex) { } catch (FileLoadException ex) { } catch (Exception ex) { exception = ex; } } if (assembly == (Assembly)null) { if (exception != null) { AssemblySatelliteResolver.log.DebugFormat("Cannot load \"{0}\", falling back to load-from. {1}", (object)assemblyName, (object)exception); } assembly = Assembly.LoadFrom(fullPath); } try { if (AssemblySatelliteResolver.ResolveCnt.GetOrAdd(assembly.FullName, (Func <string, AssemblySatelliteResolver.IntRef>)(_ => new AssemblySatelliteResolver.IntRef(0))).Increment() == 1 | isLog) { Uri assemblyLocation = AssemblySatelliteResolver.GetAssemblyLocation(assembly); string str = !(assemblyLocation != (Uri)null) || !assemblyLocation.IsAbsoluteUri ? string.Empty : AssemblySatelliteResolver.NormalizePath(assemblyLocation.LocalPath); if (AssemblyName.ReferenceMatchesDefinition(resolve, assembly.GetName())) { if (fullPath.Equals(str, StringComparison.Ordinal)) { goto label_19; } } AssemblySatelliteResolver.log.ErrorFormat("Resolved \"{0}\" as \"{1}\" at \"{2}\"", (object)resolve, (object)assembly, (object)str); } } catch (Exception ex) { AssemblySatelliteResolver.log.ErrorFormat("Error reporting assembly-resolved. {0}", (object)ex); } label_19: resolvedAssembly = assembly; return(true); }