Пример #1
0
 public void DoOnProjectModifyingStart(VSLangProj.VSProject project)
 {
     if (this.OnProjectModifyingStart != null)
     {
         this.OnProjectModifyingStart(project);
     }
 }
Пример #2
0
        static public VSLangProj.Reference AddDllReferenceToProject(Project proj, string dllReference)
        {
            if (proj == null)
            {
                throw new Exception("Invalid  Project parameter");
            }

            if (dllReference.Equals(string.Empty) || dllReference.Equals(""))
            {
                throw new Exception("Invalid  dllReference parameter");
            }

            VSLangProj.Reference reference = null;

            VSLangProj.VSProject vsProject = (VSLangProj.VSProject)proj.Object;

            reference =
                vsProject.References.Find(dllReference);

            if (reference == null)
            {
                try
                {
                    reference =
                        vsProject.References.Add(dllReference);
                }
                catch (Exception ex)
                {
                    //ErrorHandler.HandleException(ex);
                    Logger.LogException(ex);
                }
            }

            return(reference);
        }
Пример #3
0
        private void ResolveActiveProjectsReferencesInternal(ResolveReferencesCommandModel selectedCommandModel)
        {
            this.Worker.ReportProgress(0, this.Info.OnStartResolving);

            EnvDTE.DTE instanceService = this.package.GetDteService();
            Dictionary <string, ReferenceModel> availableReplaceReferences = this.GetAvailableReplaceReferences(selectedCommandModel);
            Dictionary <string, ReferenceModel> referencesThanMustBeAdded  = this.GetReferencesThatMustBeAdded(selectedCommandModel);

            try
            {
                foreach (EnvDTE.Project projectItem in (IEnumerable)instanceService.DTE.ActiveSolutionProjects)
                {
                    VSLangProj.VSProject project = (projectItem.Object as VSLangProj.VSProject);

                    if (project != null)
                    {
                        this.ResolveProjectReferences(project, availableReplaceReferences, referencesThanMustBeAdded);
                    }
                }
            }
            catch (Exception ex)
            {
                this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnException(ex); }));
            }

            this.Worker.ReportProgress(100, this.Info.OnFinishedResolving);
        }
Пример #4
0
 public void DoOnProjectModifyingEnd(VSLangProj.VSProject project)
 {
     if (this.OnProjectModifyingEnd != null)
     {
         this.OnProjectModifyingEnd(project);
     }
 }
Пример #5
0
        private void ResolveProjectReferences(VSLangProj.VSProject project,
                                              Dictionary <string, ReferenceModel> availableReplaceReferences, Dictionary <string, ReferenceModel> referencesThanMustBeAdded)
        {
            this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnProjectModifyingStart(project); }));

            VSLangProj.References               existingRefs = project.References;
            List <VSLangProj.Reference>         refsToRemove;
            Dictionary <string, ReferenceModel> refsToAdd;

            this.GetReferencesToAddAndRemove(existingRefs, availableReplaceReferences, referencesThanMustBeAdded, out refsToRemove, out refsToAdd);

            for (int i = 0; i < refsToRemove.Count; i++)
            {
                VSLangProj.Reference refToRemove      = refsToRemove[i];
                ReferenceModel       refModelToRemove = new ReferenceModel(refToRemove.Name, refToRemove.Path);
                refToRemove.Remove();
                this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnReferenceRemoved(refModelToRemove); }));
            }

            foreach (KeyValuePair <string, ReferenceModel> refToAdd in refsToAdd)
            {
                existingRefs.Add(refToAdd.Value.Path);
                this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnReferenceAdded(refToAdd.Value); }));
            }

            this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnProjectModifyingEnd(project); }));
        }
Пример #6
0
 public SelectContextFrm(Dictionary<string, string> beDic, string projectName, VSLangProj.VSProject curProj)
 {
     InitializeComponent();
     this.BEList = beDic;
     this.projectName = projectName;
     this.CurProj = curProj;
 }
        /// <summary>
        /// Outputs the code.
        /// </summary>
        /// <param name="tempFilePath">The temp file path.</param>
        /// <param name="sharePointInstallPath">The share point install path.</param>
        internal static void OutputCode(string tempFilePath, string sharePointInstallPath)
        {
            EnvDTE.Project activeProject = DTEManager.ActiveProject;

            if (activeProject != null)
            {
                try
                {
                    activeProject.ProjectItems.AddFromFileCopy(tempFilePath);
                    File.Delete(tempFilePath);

                    // add reference to Microsoft.SharePoint.Linq
                    VSLangProj.VSProject vsProject = (VSLangProj.VSProject)activeProject.Object;
                    vsProject.References.Add(Path.Combine(sharePointInstallPath, @"ISAPI\Microsoft.SharePoint.Linq.dll"));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                string code = File.ReadAllText(tempFilePath);
                File.Delete(tempFilePath);
                DTEManager.CreateNewTextFile(Path.GetFileName(tempFilePath), code);
            }
        }
Пример #8
0
 public void ResolveSingleProjectReferences(VSLangProj.VSProject project, ResolveReferencesCommandModel selectedCommandModel)
 {
     if (!this.Worker.IsBusy)
     {
         this.AttachToWorkerEventsWhenResolvingSingleProject();
         this.Worker.RunWorkerAsync(new Tuple <VSLangProj.VSProject, ResolveReferencesCommandModel>(project, selectedCommandModel));
     }
 }
Пример #9
0
 public static void ShowReferences(Project project)
 {
     VSLangProj.VSProject vsProject = project.Object as VSLangProj.VSProject;
     foreach (VSLangProj.Reference p in vsProject.References)
     {
         System.Diagnostics.Debug.WriteLine(p.Name);
     }
 }
Пример #10
0
        private void Worker_DoWorkWhenResolvingSingleProject(object sender, DoWorkEventArgs e)
        {
            var arguments = (Tuple <VSLangProj.VSProject, ResolveReferencesCommandModel>)e.Argument;

            VSLangProj.VSProject          project = arguments.Item1;
            ResolveReferencesCommandModel selectedCommandModel = arguments.Item2;

            this.ResolveSingleProjectReferencesInternal(project, selectedCommandModel);
        }
Пример #11
0
 public TestVisualBasicVSImports(VSLangProj.VSProject vsProject,
                                 IProjectThreadingService threadingService,
                                 IActiveConfiguredValue <ConfiguredProject> activeConfiguredProject,
                                 IProjectAccessor projectAccessor,
                                 IUnconfiguredProjectVsServices unconfiguredProjectVSServices,
                                 TestVisualBasicNamespaceImportsList importsList)
     : base(vsProject, threadingService, activeConfiguredProject, projectAccessor, unconfiguredProjectVSServices, importsList)
 {
     _testImportsList = importsList;
 }
Пример #12
0
 void IDisposable.Dispose()
 {
     if (vsproject != null)
     {
         vsproject = null;
         vsproject.Events.ReferencesEvents.ReferenceAdded   -= new VSLangProj._dispReferencesEvents_ReferenceAddedEventHandler(ReferencesEvents_ReferenceAdded);
         vsproject.Events.ReferencesEvents.ReferenceRemoved -= new VSLangProj._dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
         vsproject.Events.ReferencesEvents.ReferenceChanged -= new VSLangProj._dispReferencesEvents_ReferenceChangedEventHandler(ReferencesEvents_ReferenceRemoved);
     }
 }
Пример #13
0
        public Project([NotNull] Solution solution, [NotNull] EnvDTE.Project project)
        {
            Solution   = solution;
            _project   = project;
            _vsProject = project.TryGetObject() as VSLangProj.VSProject;

            Debug.Assert(_project.UniqueName != null);
            UniqueName = _project.UniqueName;

            _projectTypeGuids = _project.GetProjectTypeGuids();
        }
Пример #14
0
        static public VSLangProj.References GetProjectReferences(Project project)
        {
            if (project == null)
            {
                throw new Exception("Invalid  Project parameter");
            }

            VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;

            return(vsProject.References);
        }
Пример #15
0
 public bool ContainsEfSqlCeReference(Project project)
 {
     VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;
     for (int i = 1; i < vsProject.References.Count + 1; i++)
     {
         if (vsProject.References.Item(i).Name == "EntityFramework.SqlServerCompact" &&
             new Version(vsProject.References.Item(i).Version) >= new Version(6, 0, 0, 0))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #16
0
 internal bool ContainsEfsqLiteReference(Project project)
 {
     VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;
     for (int i = 1; i < vsProject.References.Count + 1; i++)
     {
         if (vsProject.References.Item(i).Name == "System.Data.SQLite.EF6" &&
             new Version(vsProject.References.Item(i).Version) >= new Version(1, 0, 93, 0))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #17
0
        public void how_to_convert_MSBuild_Project_to_VsLangProject()
        {
            // Say you got an MSBuild Project somehow.
            Microsoft.Build.Evaluation.Project project = this.MsBuildLibrary;

            VSLangProj.VSProject vsProject = project.Adapt().AsVsLangProject();

            Assert.IsNotNull(vsProject);

            // Use the project, for example, to create the Web References folder
            EnvDTE.ProjectItem folder = vsProject.CreateWebReferencesFolder();
            Assert.IsNotNull(folder);
        }
Пример #18
0
        public void how_to_convert_IVsProject_to_VSProject()
        {
            // Say you got an IVsProject somehow.
            IVsProject vsProject = this.IVsLibrary;

            VSLangProj.VSProject langProject = vsProject.Adapt().AsVsLangProject();

            Assert.IsNotNull(langProject);

            // Use the project, for example, to create the Web References folder
            EnvDTE.ProjectItem folder = langProject.CreateWebReferencesFolder();
            Assert.IsNotNull(folder);
        }
        public VSMDPythonProvider(VSLangProj.VSProject project)
        {
            if (project == null)
                throw new ArgumentNullException("project");

            vsproject = project;

            // Create the provider
            this.ReferencesEvents_ReferenceRemoved(null);
            vsproject.Events.ReferencesEvents.ReferenceAdded += new VSLangProj._dispReferencesEvents_ReferenceAddedEventHandler(ReferencesEvents_ReferenceAdded);
            vsproject.Events.ReferencesEvents.ReferenceRemoved += new VSLangProj._dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
            vsproject.Events.ReferencesEvents.ReferenceChanged += new VSLangProj._dispReferencesEvents_ReferenceChangedEventHandler(ReferencesEvents_ReferenceRemoved);
        }
Пример #20
0
        static public void RemoveReferenceFromProject(int index, Project project)
        {
            try
            {
                VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;

                vsProject.References.Item(index).Remove();
            }
            catch (Exception ex)
            {
                //ignore...
                Logger.LogException(ex);
            }
        }
Пример #21
0
        public Project([NotNull] Solution solution, [NotNull] EnvDTE.Project project)
        {
            Contract.Requires(solution != null);
            Contract.Requires(project != null);

            _solution  = solution;
            _project   = project;
            _vsProject = project.TryGetObject() as VSLangProj.VSProject;

            Contract.Assume(_project.UniqueName != null);
            _uniqueName = _project.UniqueName;

            _projectTypeGuids = _project.GetProjectTypeGuids();
        }
Пример #22
0
        public static InteractionDataParameter GetAllReferenceStructures()
        {
            if (dteSolution == null) // Get the current instance of VS
            {
                dteSolution = SeekDTE2InstanceFromROT(String.Format("!VisualStudio.DTE.9.0:{0}", Process.GetCurrentProcess().Id)) as DTE2;
            }

            // Get the active project
            Array activeProjects = (Array)dteSolution.ActiveSolutionProjects;

            EnvDTE.Project currentProject = activeProjects.GetValue(0) as EnvDTE.Project;


            // Get a reference to the current Visual Studio Project
            VSLangProj.VSProject vsProject = currentProject.Object as VSLangProj.VSProject;

            // Create an app domain for loading new assemblies, load the assemblies,
            // and get all interations unsing the interaction list proxy class
            AppDomain dllDomain = AppDomain.CreateDomain("MessageFactoryWizard");

            dllDomain.Load(Assembly.GetExecutingAssembly().FullName);
            StructureListProxyClass ilpc = dllDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, "MARC.Everest.VisualStudio.Wizards.Proxy.StructureListProxyClass") as StructureListProxyClass;

            // Load references
            foreach (VSLangProj.Reference reference in vsProject.References)
            {
                if (reference.Type == VSLangProj.prjReferenceType.prjReferenceTypeAssembly) // Project Assembly, search AppDomain
                {
                    ilpc.LoadAssembly(reference.Path);
                }
            }

            // Get the strucutres in the referenced assemblies then copy them to the
            // parameters
            InteractionDataParameter parm = new InteractionDataParameter();

            parm.Structures = ilpc.GetStructures();
            parm.Name       = "structures";

            if (parm.Structures == null)
            {
                throw new InvalidOperationException("You must make a reference to the MARC.Everest assembly before adding a new structure");
            }

            // Unload the app domain
            AppDomain.Unload(dllDomain);

            return(parm);
        }
Пример #23
0
        static public int GetReferenceIndexFromProject(string referenceName, Project project)
        {
            VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;
            int index = 0;

            foreach (VSLangProj.Reference projRef in vsProject.References)
            {
                index++;
                if (projRef.Name.Equals(referenceName))
                {
                    return(index);
                }
            }
            return(index);
        }
Пример #24
0
        // This method is never used and tested!
        public void ResolveSelectedProjectReferences(ResolveReferencesCommandModel selectedCommandModel)
        {
            if (this.EnsureNotResolving())
            {
                object selectedObject = this.GetSelectedContextMenuItem();

                VSLangProj.VSProject project = selectedObject as VSLangProj.VSProject;

                if (project != null)
                {
                    ReferenceResolver resolver = this.PrepareReferenceResolverWithDialog();
                    resolver.ResolveSingleProjectReferences(project, selectedCommandModel);
                }
            }
        }
Пример #25
0
        public VSMDComposeStarProvider(VSLangProj.VSProject project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            vsproject = project;

            // Create the provider
            this.ReferencesEvents_ReferenceRemoved(null);
            vsproject.Events.ReferencesEvents.ReferenceAdded   += new VSLangProj._dispReferencesEvents_ReferenceAddedEventHandler(ReferencesEvents_ReferenceAdded);
            vsproject.Events.ReferencesEvents.ReferenceRemoved += new VSLangProj._dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
            vsproject.Events.ReferencesEvents.ReferenceChanged += new VSLangProj._dispReferencesEvents_ReferenceChangedEventHandler(ReferencesEvents_ReferenceRemoved);
        }
Пример #26
0
        private void AddXleModelProject()
        {
            if (currentProject == null)
            {
                return;
            }

            Solution2 solution = (Solution2)applicationObject.Solution;

            string dirPath = Path.GetDirectoryName(solution.FullName) + "\\XleModel";

            FileHelper.DirectoryCopy(AssemblyDirectory + "\\templates\\XleModel", dirPath, true);
            xleModelProject = solution.AddFromFile(dirPath + "\\XleModel.csproj");

            VSLangProj.VSProject project = (VSLangProj.VSProject)currentProject.Object;
            project.References.AddProject(xleModelProject);
        }
Пример #27
0
        private void SetProjectReferences()
        {
            var allProjects = new Dictionary <string, Project>();

            foreach (Project prj in _solution.Projects)
            {
                if (prj.Name.EndsWith(".Client"))
                {
                    allProjects["client"] = prj;
                }
                else if (prj.Name.EndsWith(".Client.WPF"))
                {
                    allProjects["wpf"] = prj;
                }
                else if (prj.Name.EndsWith(".Common"))
                {
                    allProjects["common"] = prj;
                }
                else if (prj.Name.EndsWith(".Server"))
                {
                    allProjects["server"] = prj;
                }
            }

            foreach (Project prj in _solution.Projects)
            {
                VSLangProj.VSProject vsProj = (VSLangProj.VSProject)prj.Object;
                if (prj.Name.EndsWith(".Common"))
                {
                }
                else if (prj.Name.EndsWith(".Client"))
                {
                    vsProj.References.AddProject(allProjects["common"]).CopyLocal = false;
                }
                else if (prj.Name.EndsWith(".Client.WPF"))
                {
                    vsProj.References.AddProject(allProjects["common"]).CopyLocal = false;
                    vsProj.References.AddProject(allProjects["client"]).CopyLocal = false;
                }
                else if (prj.Name.EndsWith(".Server"))
                {
                    vsProj.References.AddProject(allProjects["common"]).CopyLocal = false;
                }
            }
        }
Пример #28
0
        private void ResolveSingleProjectReferencesInternal(VSLangProj.VSProject project, ResolveReferencesCommandModel selectedCommandModel)
        {
            this.Worker.ReportProgress(0, this.Info.OnStartResolving);

            Dictionary <string, ReferenceModel> availableReplaceReferences = this.GetAvailableReplaceReferences(selectedCommandModel);
            Dictionary <string, ReferenceModel> referencesThanMustBeAdded  = this.GetReferencesThatMustBeAdded(selectedCommandModel);

            try
            {
                this.ResolveProjectReferences(project, availableReplaceReferences, referencesThanMustBeAdded);
            }
            catch (Exception ex)
            {
                this.Worker.ReportProgress(50, GetAction(() => { this.Info.DoOnException(ex); }));
            }

            this.Worker.ReportProgress(100, this.Info.OnFinishedResolving);
        }
Пример #29
0
        public static bool AddAssemblyReference(EnvDTE.Project project, string assembliesDir, string component)
        {
            string path = Path.Combine(assembliesDir, string.Format("{0}.dll", component));

            VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;
            try
            {
                VSLangProj80.Reference3 reference = (VSLangProj80.Reference3)vsProject.References.Add(path);
                TrySetCopyLocal(reference);
                TrySetSpecificVersion(reference);
                TrySetHintPath(reference);
                return(true);
            }
            catch (COMException)
            {
            }
            return(false);
        }
Пример #30
0
        public List <Assembly> GetReferences()
        {
            Project         project = dte.Solution.Projects.Item(1);
            List <Assembly> list    = new List <Assembly>();

            if (project.Object is VSLangProj.VSProject)
            {
                VSLangProj.VSProject vsproject = (VSLangProj.VSProject)project.Object;
                foreach (VSLangProj.Reference reference in vsproject.References)
                {
                    try
                    {
                        if (reference.StrongName)
                        {
                            //System.Configuration, Version=2.0.0.0,
                            //Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A
                            list.Add(Assembly.Load(

                                         reference.Identity +
                                         ", Version=" + reference.Version +
                                         ", Culture=" + (string.IsNullOrEmpty(reference.Culture) ?
                                                         "neutral" : reference.Culture) +
                                         ", PublicKeyToken=" + reference.PublicKeyToken));
                        }
                        else
                        {
                            list.Add(Assembly.Load(reference.Path));
                        }
                    }
                    catch (System.IO.FileLoadException ex)
                    {
                    }
                }
            }
            else if (project.Object is VsWebSite.VSWebSite)
            {
                VsWebSite.VSWebSite vswebsite = (VsWebSite.VSWebSite)project.Object;
                foreach (VsWebSite.AssemblyReference reference in vswebsite.References)
                {
                    list.Add(Assembly.Load(reference.StrongName));
                }
            }
            return(list);
        }
 public static bool AddAssemblyReference(EnvDTE.Project project, String component)
 {
     VSLangProj.VSProject vsProject = (VSLangProj.VSProject)project.Object;
     try
     {
         VSLangProj80.Reference3 reference = (VSLangProj80.Reference3)vsProject.References.Add(component + ".dll");
         reference.CopyLocal = true;
         //
         // We set SpecificVersion to false so that references still work
         // when Ice Home setting is updated.
         //
         reference.SpecificVersion = false;
         return(true);
     }
     catch (COMException)
     {
     }
     return(false);
 }
Пример #32
0
        public static IEnumerable <Project> GetReferencedProjets(Project project, bool includeTheProjectItselfAmondTheResults = false)
        {
            if (project.Object is VSLangProj.VSProject)
            {
                VSLangProj.VSProject vsproject = (VSLangProj.VSProject)project.Object;

                foreach (VSLangProj.Reference reference in vsproject.References)
                {
                    Project referencedProject = reference.SourceProject;
                    if (referencedProject != null)
                    {
                        yield return(referencedProject);
                    }
                }
            }
            if (includeTheProjectItselfAmondTheResults)
            {
                yield return(project);
            }
        }
 void IDisposable.Dispose()
 {
     if (vsproject != null)
     {
         vsproject = null;
         vsproject.Events.ReferencesEvents.ReferenceAdded -= new VSLangProj._dispReferencesEvents_ReferenceAddedEventHandler(ReferencesEvents_ReferenceAdded);
         vsproject.Events.ReferencesEvents.ReferenceRemoved -= new VSLangProj._dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
         vsproject.Events.ReferencesEvents.ReferenceChanged -= new VSLangProj._dispReferencesEvents_ReferenceChangedEventHandler(ReferencesEvents_ReferenceRemoved);
     }
 }
Пример #34
0
        public override void TestInitialize()
        {
            base.TestInitialize();

            base.OpenSolution("SampleSolution\\SampleSolution.sln");

            Solution = DevEnv.Get(ServiceProvider).SolutionExplorer().Solution;
            Assert.IsNotNull(Solution);

            LibraryNode = Solution.FindProjects(p => p.DisplayName == "ClassLibrary").First();
            Assert.IsNotNull(LibraryNode);

            DteLibrary = LibraryNode.As<Project>();
            IVsLibrary = LibraryNode.As<IVsProject>();
            VsLangLibrary = LibraryNode.As<VSLangProj.VSProject>();

            Assert.IsNotNull(DteLibrary);
            Assert.IsNotNull(IVsLibrary);
            Assert.IsNotNull(VsLangLibrary);
        }