private static ProjectNode GetTestProjectNode(string language)
		{
			MockVSHierarchy root = new MockVSHierarchy();
			MockVsSolution vsSolution = new MockVsSolution(root);
			MockVSHierarchy project = new MockVSHierarchy("Project.project");

			MockEnvDTEProject mockEnvDteProject = project.ExtObject as MockEnvDTEProject;
			if (mockEnvDteProject != null)
			{
				mockEnvDteProject.SetCodeModel(new MockCodeModel(language));
			}
			root.AddProject(project);

			ProjectNode projectNode = new ProjectNode(vsSolution, project.GUID);

			return projectNode;
		}
		public void RemoveItem()
		{
			MockVSHierarchy hierarchy = new MockVSHierarchy();
			MockVsSolution solution = new MockVsSolution(hierarchy);
			MockVSHierarchy project = new MockVSHierarchy("Project3.project");
			hierarchy.AddProject(project);
			ProjectNode projectNode = new ProjectNode(solution, project.GUID);
			string itemName = "item1";
			HierarchyNode node = projectNode.AddItem(itemName);
			Assert.IsNotNull(projectNode.FindByName(itemName));
			node.Remove();
			Assert.IsNull(projectNode.FindByName(itemName));
		}
Пример #3
0
		/// <summary>
		/// Adds the project reference.
		/// </summary>
		/// <param name="projectId">The project id.</param>
		public void AddProjectReference(Guid projectId)
		{
			if (ProjectGuid == projectId)
			{
				return;
			}

            using (ProjectNode referencedProject = new ProjectNode(Solution, projectId))
            {
                if (VSProject != null)
                {
                    try
                    {
                        if (VSProject.Object is VSLangProj.VSProject)
                        {
                            VSLangProj.References references =
                                ((VSLangProj.VSProject)VSProject.Object).References;

                            if (references != null && referencedProject.ExtObject is EnvDTE.Project)
                            {
                                references.AddProject(referencedProject.ExtObject as EnvDTE.Project);
                            }
                        }
                        else if (VSProject.Object is VsWebSite.VSWebSite)
                        {
                            VsWebSite.AssemblyReferences references =
                                ((VsWebSite.VSWebSite)VSProject.Object).References;

                            if (references != null && referencedProject.ExtObject is EnvDTE.Project)
                            {
                                references.AddFromProject(referencedProject.ExtObject as EnvDTE.Project);
                            }
                        }
                    }
                    catch (COMException)
                    {
                        // throws exceptions if the reference already exists
                    }
                }
            }
		}
Пример #4
-1
		public static void AddSolutionItem(IVsSolution solution, string fileName)
		{
			uint itemId = DteHelper2.FindItemByName(
				solution as IVsHierarchy, "Solution Items");

			IntPtr ptr = IntPtr.Zero;
			Guid solutionFolderGuid = new Guid("2150E333-8FDC-42a3-9474-1A3956D46DE8");
			Guid iidProject = typeof(IVsHierarchy).GUID;

			int res = solution.CreateProject(
				ref solutionFolderGuid,
				null,
				null,
				"Solution Items",
				0,
				ref iidProject,
				out ptr);

			if(ptr != IntPtr.Zero)
			{
				IVsHierarchy hierarchy = (IVsHierarchy)Marshal.GetObjectForIUnknown(ptr);

				Guid projGuid;

				hierarchy.GetGuidProperty(
					VSConstants.VSITEMID_ROOT,
					(int)__VSHPROPID.VSHPROPID_ProjectIDGuid,
					out projGuid);

				ProjectNode node = new ProjectNode(solution, projGuid);

				node.AddItem(fileName);
			}
		}