Пример #1
0
        public override AssemblyDefinition Resolve(AssemblyNameReference name)
        {
            AssemblyDefinition assembly;

            assembly = resign.HaveReferenceAssembly(name.Name);
            if (assembly != null)
            {
                name.IsRetargetable = true;
                return(assembly);
            }

            if (cache.TryGetValue(name.FullName, out assembly))
            {
                return(assembly);
            }

            if (!string.IsNullOrEmpty(resign.ReferenceDir))
            {
                string path;

                path = Path.Combine(resign.ReferenceDir, name.Name + ".dll");
                if (File.Exists(path))
                {
                    try {
                        assembly = AssemblyDefinition.ReadAssembly(path);
                        if (assembly != null)
                        {
                            cache[name.FullName] = assembly;
                            return(assembly);
                        }
                    } catch {
                    }
                }
            }

            assembly             = base.Resolve(name);
            cache[name.FullName] = assembly;

            return(assembly);
        }