private string GetAssemblyPathFromVSInstalDir(BuildItem item) { string name = GetReferenceDllName(item); string[] installDirs = FrameworkHelper.GetVSInstallFoldersPaths(); string path = FrameworkHelper.GetAssemblyPath(name, installDirs); if (File.Exists(path)) { return(path); } return(string.Empty); }
protected virtual void LoadReferences(ProjectElement project, Hashtable projects, XmlDocument doc, string projectDir, string projectLangTag) { string lReferencesQuery = String.Format(STR_ReferencesQueryFormat, projectLangTag); XmlNodeList lReferences = doc.SelectNodes(lReferencesQuery); int lCount = lReferences.Count; for (int i = 0; i < lCount; i++) { System.Xml.XmlNode lReferenceNode = lReferences[i]; System.Xml.XmlNode lName = lReferenceNode.Attributes.GetNamedItem(STR_Name); System.Xml.XmlNode lAssemblyName = lReferenceNode.Attributes.GetNamedItem(STR_AssemblyName); if (lAssemblyName != null) { string lAssemblyNameStr = lAssemblyName.Value; string lPath = FrameworkHelper.GetAssemblyPath(lAssemblyNameStr); if (lPath == null || lPath.Length == 0) { System.Xml.XmlNode lHintPath = lReferenceNode.Attributes.GetNamedItem("HintPath"); lPath = lHintPath.Value; lPath = PathUtilities.GetPath(projectDir, lPath); if (File.Exists(lPath)) { AssemblyReference lRef = new AssemblyReference(lPath); project.AddReference(lRef); } } else { project.AddReferenceByName(lAssemblyNameStr); } } else { System.Xml.XmlNode lProjectRef = lReferenceNode.Attributes.GetNamedItem(STR_Project); string lGuid = lProjectRef.Value; ProjectInfo lInfo = projects[lGuid] as ProjectInfo; if (lInfo != null) { AssemblyReference lRef = new AssemblyReference(String.Empty); lRef.SetSourceProjectFullName(lInfo.FilePath); project.AddReference(lRef); } } } }
private string GetAssemblyPathFromAssemblyFolders(MsBuildProjectLoader msBuildLoader, BuildItem item) { string spec = GetReferenceDllName(item); string[] assemblyFoldersPaths = FrameworkHelper.GetFrameworkPaths(msBuildLoader.TargetFramework); assemblyFoldersPaths = ReversePaths(assemblyFoldersPaths); string path = FrameworkHelper.GetAssemblyPath(spec, assemblyFoldersPaths); if (File.Exists(path)) { return(path); } assemblyFoldersPaths = FrameworkHelper.GetAssemblyFoldersPaths(msBuildLoader.TargetFramework); path = FrameworkHelper.GetAssemblyPath(spec, assemblyFoldersPaths); if (File.Exists(path)) { return(path); } try { Assembly assembly = Assembly.Load(item.FinalItemSpec); if (assembly != null) { return(assembly.Location); } } catch { } try { Assembly assembly = Assembly.LoadWithPartialName(item.FinalItemSpec); if (assembly != null) { return(assembly.Location); } } catch { } return(string.Empty); }