Exemple #1
0
 public string Resolve(string shortName)
 {
     return(AppDomain.CurrentDomain
            .GetAssemblies()
            .Where(a => StringComparer.OrdinalIgnoreCase.Equals(shortName, AssemblyLoaderExtensions.ExtractAssemblyShortName(a.FullName)))
            .Select(a => a.FullName)
            .SingleOrDefault());
 }
Exemple #2
0
        public string Resolve(string shortName)
        {
            // A few common .net framework assemblies are referenced by the Coevery.Framework assembly.
            // Look into those to see if we can find the assembly we are looking for.
            var CoeveryFrameworkReferences = _cacheManager.Get(typeof(IAssemblyLoader), ctx =>
                                                               ctx.Key.Assembly
                                                               .GetReferencedAssemblies()
                                                               .GroupBy(n => AssemblyLoaderExtensions.ExtractAssemblyShortName(n.FullName), StringComparer.OrdinalIgnoreCase)
                                                               .ToDictionary(n => n.Key /*short assembly name*/, g => g.OrderBy(n => n.Version).Last() /* highest assembly version */, StringComparer.OrdinalIgnoreCase));

            AssemblyName assemblyName;

            if (CoeveryFrameworkReferences.TryGetValue(shortName, out assemblyName))
            {
                return(assemblyName.FullName);
            }

            return(null);
        }
Exemple #3
0
        public string Resolve(string shortName)
        {
            // Look in the GAC for commonly known .net frx assemblies
            // Note: We trim processor architecture to make things easier.
            // see http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx:
            // "Processor architecture is not required for strong names."
            var lookup = _cacheManager.Get("---", ctx =>
                                           GetGacListForDotNet40()
                                           .Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
                                           .Select(s => s.Trim())
                                           .Select(s => TrimProcessorArchitecture(s))
                                           .Where(s => !string.IsNullOrWhiteSpace(s))
                                           .Distinct(StringComparer.OrdinalIgnoreCase)
                                           .ToDictionary(s => AssemblyLoaderExtensions.ExtractAssemblyShortName(s), StringComparer.OrdinalIgnoreCase));

            string fullName;

            if (lookup.TryGetValue(shortName, out fullName))
            {
                return(fullName);
            }

            return(null);
        }