public static void AddReferencesToProject(ProjectExplorerForm ProjectExplorerWindow) { ReferenceForm.Instance.Clear(); ReferenceForm.Instance.LoadAssemblies(); if (ReferenceForm.Instance.ShowDialog() == DialogResult.OK) { if (ReferenceForm.Instance.AssemblyType == AssemblyType.GAC) { string[] assemblies = ReferenceForm.Instance.GetSelectedGACAssemblies(); foreach (string s in assemblies) { PascalABCCompiler.IReferenceInfo ri = ProjectFactory.Instance.AddReference(s); ProjectExplorerWindow.AddReferenceNode(ri); try { ToolboxProvider.AddComponentsFromAssembly(PascalABCCompiler.NetHelper.NetHelper.LoadAssembly(Compiler.get_assembly_path(ri.FullAssemblyName, false))); } catch { } } } else if (ReferenceForm.Instance.AssemblyType == AssemblyType.COM) { string[] assemblies = ReferenceForm.Instance.GetSelectedCOMObjects(); foreach (string s in assemblies) { PascalABCCompiler.IReferenceInfo ri = ProjectFactory.Instance.AddReference(s); ProjectExplorerWindow.AddReferenceNode(ri); } } else { string[] assemblies = ReferenceForm.Instance.GetSelectedFileAssemblies(); List <string> assm_lst = new List <string>(); foreach (string s in assemblies) { if (string.Compare(s, Path.Combine(ProjectFactory.Instance.ProjectDirectory, Path.GetFileName(s)), true) != 0) { File.Copy(s, Path.Combine(ProjectFactory.Instance.ProjectDirectory, Path.GetFileName(s)), true); } //assm_lst.Add(Path.GetFileNameWithoutExtension(s)); //ProjectExplorerWindow.AddReferenceNode(Path.GetFileNameWithoutExtension(s)); PascalABCCompiler.IReferenceInfo ri = ProjectFactory.Instance.AddReference(Path.GetFileNameWithoutExtension(s)); ProjectExplorerWindow.AddReferenceNode(ri); try { ToolboxProvider.AddComponentsFromAssembly(PascalABCCompiler.NetHelper.NetHelper.LoadAssembly(Compiler.get_assembly_path(Path.Combine(ProjectFactory.Instance.ProjectDirectory, ri.FullAssemblyName), false))); } catch { } } //ProjectFactory.Instance.AddReferences(assm_lst.ToArray()); } } }
public static void RemoveReference(PascalABCCompiler.IReferenceInfo ri) { ProjectFactory.Instance.RemoveReference(ri); ToolboxProvider.RemoveComponentsFromAssembly(GetReflectionAssembly(ri)); }