示例#1
0
 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());
         }
     }
 }
示例#2
0
 public static void RemoveReference(PascalABCCompiler.IReferenceInfo ri)
 {
     ProjectFactory.Instance.RemoveReference(ri);
     ToolboxProvider.RemoveComponentsFromAssembly(GetReflectionAssembly(ri));
 }