Example #1
0
        internal bool HasKnownPublicKey(IType type)
        {
            IUnreferencedType unreferencedType = type as IUnreferencedType;

            byte[] publicKeyToken;
            if (unreferencedType != null)
            {
                publicKeyToken = unreferencedType.AssemblyPublicKey;
            }
            else
            {
                if (!type.RuntimeAssembly.IsLoaded)
                {
                    return(false);
                }
                publicKeyToken = type.RuntimeAssembly.GetPublicKeyToken();
            }
            return(Enumerable.Any <byte[]>((IEnumerable <byte[]>)AssetTypeHelper.KnownPublicKeyTokens, (Func <byte[], bool>)(knownToken =>
            {
                if (publicKeyToken == null || publicKeyToken.Length != 8)
                {
                    return false;
                }
                return ProjectAssemblyHelper.ComparePublicKeyTokens(knownToken, publicKeyToken);
            })));
        }
 public Assembly ResolveAssembly(AssemblyName assemblyName)
 {
     try
     {
         AssemblyName assemblyName1 = ClrAssemblyResolver.Redirect(assemblyName);
         if (assemblyName1 != null)
         {
             string assemblyFullName = ProjectAssemblyHelper.UncachedGetAssemblyFullName(assemblyName1);
             foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
             {
                 if (assembly.FullName == assemblyFullName && assembly.GlobalAssemblyCache)
                 {
                     return(assembly);
                 }
             }
             if (this.resolveAttempts.Add(assemblyFullName))
             {
                 return(ProjectAssemblyHelper.Load(assemblyName1));
             }
         }
     }
     catch (BadImageFormatException ex)
     {
     }
     catch (IOException ex)
     {
     }
     return((Assembly)null);
 }
 public bool CompareTo(string name, byte[] publicKeyToken)
 {
     if (string.Compare(this.name, name, StringComparison.OrdinalIgnoreCase) == 0)
     {
         return(ProjectAssemblyHelper.ComparePublicKeyTokens(this.publicKeyToken, publicKeyToken));
     }
     return(false);
 }
Example #4
0
        private static IPlatformCreator CreatePlatformCreator(string assemblyFile, string typeName)
        {
            Assembly assembly = ProjectAssemblyHelper.LoadFrom(Path.Combine(Path.GetDirectoryName(typeof(PlatformService).Assembly.Location), assemblyFile));

            if (assembly == (Assembly)null)
            {
                return((IPlatformCreator)null);
            }
            return((IPlatformCreator)Activator.CreateInstance(assembly.GetType(typeName)));
        }
Example #5
0
        private IImporter CreateImporter(string assemblyName, string typeName)
        {
            Assembly assembly = ProjectAssemblyHelper.LoadFrom(Path.Combine(Path.GetDirectoryName(this.GetType().Assembly.Location), assemblyName));

            if (assembly == (Assembly)null)
            {
                return((IImporter)null);
            }
            return((IImporter)Activator.CreateInstance(assembly.GetType(typeName)));
        }
 private Assembly LoadSilverlightPlatformAssembly(string assemblyName)
 {
     foreach (string path in this.GetSilverlightPlatformPaths(assemblyName))
     {
         Assembly assembly = ProjectAssemblyHelper.LoadFrom(path);
         if (assembly != (Assembly)null)
         {
             return(assembly);
         }
     }
     return((Assembly)null);
 }
        private static AssemblyName Redirect(AssemblyName assemblyName)
        {
            string name = assemblyName.Name;

            byte[] publicKeyToken = assemblyName.GetPublicKeyToken();
            if (publicKeyToken != null)
            {
                string strA = ClrAssemblyResolver.ByteArrayToString(publicKeyToken);
                for (int index = 0; index < ClrAssemblyResolver.frameworkMapping.GetLength(0); ++index)
                {
                    string strB1 = ClrAssemblyResolver.frameworkMapping[index][0];
                    string strB2 = ClrAssemblyResolver.frameworkMapping[index][1];
                    if (string.Compare(name, strB1, StringComparison.OrdinalIgnoreCase) == 0 && string.Compare(strA, strB2, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        return new AssemblyName(ProjectAssemblyHelper.CachedGetAssemblyFullName(assemblyName))
                               {
                                   Version = new Version(ClrAssemblyResolver.frameworkMapping[index][2])
                               }
                    }
                    ;
                }
                for (int index = 0; index < ClrAssemblyResolver.retargetMapping.GetLength(0); ++index)
                {
                    string strB1 = ClrAssemblyResolver.retargetMapping[index][0];
                    string strB2 = ClrAssemblyResolver.retargetMapping[index][1];
                    if (string.Compare(name, strB1, StringComparison.OrdinalIgnoreCase) == 0 && string.Compare(strA, strB2, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        Version version1 = assemblyName.Version;

                        string[] strArray = ClrAssemblyResolver.retargetMapping[index][2].Split('-');
                        Version  version2 = new Version(strArray[0]);
                        Version  version3 = new Version(strArray.Length == 1 ? strArray[0] : strArray[1]);
                        if (version1 >= version2 && version1 <= version3)
                        {
                            AssemblyName assemblyName1 = new AssemblyName(ProjectAssemblyHelper.CachedGetAssemblyFullName(assemblyName));
                            assemblyName1.Name = ClrAssemblyResolver.retargetMapping[index][3] == null ? assemblyName1.Name : ClrAssemblyResolver.retargetMapping[index][3];
                            assemblyName1.SetPublicKeyToken(ClrAssemblyResolver.ParseByteArray(ClrAssemblyResolver.retargetMapping[index][4]));
                            assemblyName1.Version = new Version(ClrAssemblyResolver.retargetMapping[index][5]);
                            assemblyName1.Flags  &= ~AssemblyNameFlags.Retargetable;
                            return(assemblyName1);
                        }
                    }
                }
            }
            return((AssemblyName)null);
        }
 public ToolkitProjectContext(IProjectContext sourceContext)
     : base(sourceContext, (ICollection <IAssembly>)null)
 {
     this.CustomAssemblyReferences = (ICollection <IAssembly>) new List <IAssembly>();
     if (!sourceContext.PlatformMetadata.IsNullType((ITypeId)sourceContext.ResolveType(ProjectNeutralTypes.VisualStateManager)) || !sourceContext.IsCapabilitySet(PlatformCapability.VsmInToolkit))
     {
         return;
     }
     if (!sourceContext.IsCapabilitySet(PlatformCapability.SupportsVisualStateManager))
     {
         return;
     }
     try
     {
         Assembly assembly = ProjectAssemblyHelper.LoadFile(ToolkitHelper.GetToolkitPath());
         this.CustomAssemblyReferences = (ICollection <IAssembly>) new List <IAssembly>(1)
         {
             sourceContext.Platform.Metadata.CreateAssembly(assembly, AssemblySource.PlatformExtension)
         };
     }
     catch (Exception ex)
     {
     }
 }
Example #9
0
 static BuildManager()
 {
     BuildManager.BuildEngineVersion     = ProjectAssemblyHelper.GetAssemblyName(typeof(Microsoft.Build.Evaluation.ProjectCollection).Assembly).Version;
     BuildManager.asyncBuildRequestQueue = new Queue <BuildManager.BuildRequest>();
 }
Example #10
0
        private bool IsOverqualifiedSdkAssembly(IProjectItemData reference, AssemblyName referenceAssemblyName)
        {
            bool flag;

            List <AssemblyName> .Enumerator enumerator = this.GetBlendSdkAssemblies().GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    AssemblyName current        = enumerator.Current;
                    byte[]       publicKeyToken = referenceAssemblyName.GetPublicKeyToken();
                    if (!string.Equals(current.Name, referenceAssemblyName.Name, StringComparison.OrdinalIgnoreCase) || !(referenceAssemblyName.Version == null) && !current.Version.Equals(referenceAssemblyName.Version) || publicKeyToken != null && (int)publicKeyToken.Length != 0 && !ProjectAssemblyHelper.ComparePublicKeyTokens(current.GetPublicKeyToken(), publicKeyToken))
                    {
                        continue;
                    }
                    flag = !string.Equals(reference.Value, referenceAssemblyName.Name, StringComparison.OrdinalIgnoreCase);
                    return(flag);
                }
                return(false);
            }
            finally
            {
                ((IDisposable)enumerator).Dispose();
            }
            return(flag);
        }
 private static bool IsSilverlightAssembly(ISatelliteAssemblyResolver satelliteAssemblyResolver, Assembly assembly)
 {
     AssemblyName[] referencedAssemblies = assembly.GetReferencedAssemblies();
     foreach (AssemblyName assemblyName in referencedAssemblies)
     {
         if (SilverlightAssemblyResolver.MscorlibSpec.CompareTo(assemblyName.Name, assemblyName.GetPublicKeyToken()))
         {
             return(true);
         }
     }
     return(referencedAssemblies.Length == 1 && string.Equals(referencedAssemblies[0].Name, "mscorlib", StringComparison.OrdinalIgnoreCase) && satelliteAssemblyResolver.GetCachedSatelliteAssembly(ProjectAssemblyHelper.GetAssemblyName(assembly)) != (Assembly)null);
 }