Exemplo n.º 1
0
 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);
        }
Exemplo n.º 6
0
 public void InitializeProject(IVsProject project)
 {
     if (project.IsMSBuildIceBuilderInstalled())
     {
         if (project.IsCppProject())
         {
             VCUtil.SetupSliceFilter(project.GetDTEProject());
         }
         else
         {
             if (project is IVsAggregatableProject)
             {
                 project.AddProjectFlavorIfNotExists(IceBuilderNewFlavor);
             }
         }
     }
 }
Exemplo n.º 7
0
        // 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);
     }
 }
Exemplo n.º 10
0
        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);
            }
        }