public void AddIceBuilderToProject(EnvDTE.Project p) { Microsoft.Build.Evaluation.Project project = MSBuildUtils.LoadedProject(p.FullName); if (MSBuildUtils.AddIceBuilderToProject(project)) { if (DTEUtil.IsCppProject(p)) { VCUtil.SetupSliceFilter(p); } else { String includeDirectories = ProjectUtil.GetProperty(p, PropertyNames.IncludeDirectories); if (String.IsNullOrEmpty(includeDirectories)) { ProjectUtil.SetProperty(p, PropertyNames.IncludeDirectories, @"$(IceHome)\slice"); } else if (includeDirectories.IndexOf(@"$(IceHome)\slice") == -1) { ProjectUtil.SetProperty(p, PropertyNames.IncludeDirectories, String.Format(@"$(IceHome)\slice;{0}", includeDirectories)); } ProjectUtil.AddAssemblyReference(p, "Ice"); } p.Save(); IVsHierarchy hier = DTEUtil.GetIVsHierarchy(p); Guid projectGUID = Guid.Empty; IVsSolution.GetGuidOfProject(hier, out projectGUID); IVsSolution.CloseSolutionElement((uint)__VSSLNCLOSEOPTIONS.SLNCLOSEOPT_UnloadProject, hier, 0); project.Save(); IVsSolution4.ReloadProject(ref projectGUID); } }
public void InitializeProjects(List <IVsProject> upgradeProjects) { ProjectConverter.TryUpgrade(upgradeProjects); List <IVsProject> projects = DTEUtil.GetProjects(); List <IVsProject> sliceProjects = new List <IVsProject>(); foreach (IVsProject project in projects) { IceBuilderProjectType projectType = DTEUtil.IsIceBuilderEnabled(project); if (projectType != IceBuilderProjectType.None) { if (projectType == IceBuilderProjectType.CppProjectType) { VCUtil.SetupSliceFilter(DTEUtil.GetProject(project as IVsHierarchy)); } if (AutoBuilding) { sliceProjects.Add(project); } else { FileTracker.Add(project, projectType); } } } if (AutoBuilding) { QueueProjectsForBuilding(sliceProjects); } }
public void InitializeProject(IVsProject project) { if (project.IsMSBuildIceBuilderInstalled()) { if (project.IsCppProject()) { VCUtil.SetupSliceFilter(project.GetDTEProject()); } else { if (project is IVsAggregatableProject) { project.AddProjectFlavorIfNotExists(IceBuilderNewFlavor); } } } }
public void InitializeProjects(List <EnvDTE.Project> projects) { ProjectConverter.TryUpgrade(projects); projects = DTEUtil.GetProjects(DTE.Solution); foreach (EnvDTE.Project project in projects) { List <EnvDTE.Project> build = new List <EnvDTE.Project>(); if (DTEUtil.IsIceBuilderEnabled(project)) { if (DTEUtil.IsCppProject(project)) { VCUtil.SetupSliceFilter(project); } FileTracker.Add(project); build.Add(project); } QueueProjectsForBuilding(build); } }
public void AddIceBuilderToProject(IVsProject p) { Microsoft.Build.Evaluation.Project project = MSBuildUtils.LoadedProject(ProjectUtil.GetProjectFullPath(p), DTEUtil.IsCppProject(p), true); if (MSBuildUtils.AddIceBuilderToProject(project)) { if (DTEUtil.IsCppProject(p)) { VCUtil.SetupSliceFilter(DTEUtil.GetProject(p as IVsHierarchy)); } else { String includeDirectories = ProjectUtil.GetProperty(p, PropertyNames.IncludeDirectories); if (String.IsNullOrEmpty(includeDirectories)) { ProjectUtil.SetProperty(p, PropertyNames.IncludeDirectories, @"$(IceHome)\slice"); } else if (includeDirectories.IndexOf(@"$(IceHome)\slice") == -1) { ProjectUtil.SetProperty(p, PropertyNames.IncludeDirectories, String.Format(@"$(IceHome)\slice;{0}", includeDirectories)); } ProjectUtil.AddAssemblyReference(DTEUtil.GetProject(p as IVsHierarchy), "Ice"); } ProjectUtil.SaveProject(p); IVsHierarchy hier = p as IVsHierarchy; Guid projectGUID = Guid.Empty; IVsSolution.GetGuidOfProject(hier, out projectGUID); IVsSolution.CloseSolutionElement((uint)__VSSLNCLOSEOPTIONS.SLNCLOSEOPT_UnloadProject, hier, 0); project.Save(); try { ProjectCollection.GlobalProjectCollection.UnloadProject(project); } catch (System.Exception) { //expected if the project is not in the global project collection } IVsSolution4.ReloadProject(ref projectGUID); } }
public void InitializeProject(IVsProject project) { IceBuilderProjectType projectType = DTEUtil.IsIceBuilderNuGetInstalled(project); if (projectType != IceBuilderProjectType.None) { var dteproject = project.GetDTEProject(); if (projectType == IceBuilderProjectType.CppProjectType) { VCUtil.SetupSliceFilter(dteproject); } else { if (project is IVsAggregatableProject) { if (MSBuildUtils.AddProjectFlavorIfNotExists(project.GetMSBuildProject(true), IceBuilderNewFlavor)) { dteproject.Save(); } } } FileTracker.Add(project, projectType); } }