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 static void AddCppGeneratedItem(IVsProject project, EnvDTE.Project dteproject, VCUtil vcutil, string projectDir, string path, string generatedpath, string generatedfilter, List <string> allConfigurations, List <string> configurations) { ThreadHelper.ThrowIfNotOnUIThread(); if (TryAddItem(project, Path.Combine(projectDir, generatedpath))) { var excludedConfigurations = allConfigurations.Where(c => !configurations.Contains(c)).ToList(); project.SetGeneratedItemCustomMetadata(path, generatedpath, excludedConfigurations); // // If generated item applies only to one platform configuration we move it to the Platform/Configuration filter // if (configurations.Count == 1) { string configurationName; string platformName; ParseConfiguration(configurations.First(), out configurationName, out platformName); vcutil.AddGenerated(project, generatedpath, generatedfilter, platformName, configurationName); dteproject.Save(); } } }
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 static void Init(VCUtil vcutil, NuGet nuget, IVsProjectHelper projectHelper) { VCUtil = vcutil; NuGet = nuget; ProjectHelper = projectHelper; }
GetCppGeneratedFiles(IVsProject project, EnvDTE.Project dteproject, VCUtil vcutil, string projectDir, string item) { ThreadHelper.ThrowIfNotOnUIThread(); var fileset = new GeneratedFileSet { filename = item, sources = new Dictionary <string, List <string> >(), headers = new Dictionary <string, List <string> >() }; var outputDir = project.GetItemMetadata(item, "OutputDir"); var headerOutputDir = project.GetItemMetadata(item, "HeaderOutputDir"); var headerExt = project.GetItemMetadata(item, "HeaderExt"); var sourceExt = project.GetItemMetadata(item, "SourceExt"); foreach (EnvDTE.Configuration configuration in dteproject.ConfigurationManager) { var evaluatedOutputDir = vcutil.Evaluate(configuration, outputDir); var evaluatedHeaderOutputDir = string.IsNullOrEmpty(headerOutputDir) ? evaluatedOutputDir : vcutil.Evaluate(configuration, headerOutputDir); var cppFilename = string.Format("{0}.{1}", Path.GetFileNameWithoutExtension(item), sourceExt); var hFilename = string.Format("{0}.{1}", Path.GetFileNameWithoutExtension(item), headerExt); cppFilename = Path.GetFullPath(Path.Combine(projectDir, evaluatedOutputDir, cppFilename)); hFilename = Path.GetFullPath(Path.Combine(projectDir, evaluatedHeaderOutputDir, hFilename)); if (fileset.sources.ContainsKey(cppFilename)) { fileset.sources[cppFilename].Add(ConfigurationString(configuration)); } else { var configurations = new List <string>(); configurations.Add(ConfigurationString(configuration)); fileset.sources[cppFilename] = configurations; } if (fileset.headers.ContainsKey(hFilename)) { fileset.headers[hFilename].Add(ConfigurationString(configuration)); } else { var configurations = new List <string>(); configurations.Add(ConfigurationString(configuration)); fileset.headers[hFilename] = configurations; } } return(fileset); }
public void InitializeProject(IVsProject project) { if (project.IsMSBuildIceBuilderInstalled()) { if (project.IsCppProject()) { VCUtil.SetupSliceFilter(project.GetDTEProject()); } else { if (project is IVsAggregatableProject) { project.AddProjectFlavorIfNotExists(IceBuilderNewFlavor); } } } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public virtual void Configure(IApplicationBuilder app, IHostingEnvironment env) { //Session,需先注册 app.UseSession(); //身份认证及权限 app.UseAuthentication(); //注册mvc路由 app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); //注册工具库 VCUtil.Register(app, env); }
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); } }