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)); }
/// <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 } } } }
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); } }