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); }
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))); }
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) { } }
static BuildManager() { BuildManager.BuildEngineVersion = ProjectAssemblyHelper.GetAssemblyName(typeof(Microsoft.Build.Evaluation.ProjectCollection).Assembly).Version; BuildManager.asyncBuildRequestQueue = new Queue <BuildManager.BuildRequest>(); }
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); }