Пример #1
0
 private void PopulateTemplates(string basePath, ArrayList templates, Configuration.GuidancePackage guidancePackage)
 {
     GetTemplates(basePath + @"\Templates\Items", templates, guidancePackage);
     GetTemplates(basePath + @"\Templates\Projects", templates, guidancePackage);
     GetTemplates(basePath + @"\Templates\Solutions", templates, guidancePackage);
     GetTemplates(basePath + @"\Templates\Solutions\Projects", templates, guidancePackage);
 }
Пример #2
0
        private void GetTemplate(string templateFile, ArrayList templates, Configuration.GuidancePackage guidancePackage)
        {
            IVsTemplate template = null;

            // HACK: we don't want to process VB templates if VB package isn't installed

            if (IsVbTemplate(templateFile) && !IsVsIsInstalled())
            {
                Trace.TraceInformation("The VS template '{0}' uses VB and VB isn't installed, skipping it...", templateFile);
                return;
            }

            if (guidancePackage != null)
            {
                RegisterTemplate(templateFile, guidancePackage.Name, new Guid(guidancePackage.Guid));
            }

            template = ((IVsTemplatesService)this).GetTemplate(templateFile);

            if (template != null)
            {
                templates.Add(template);
            }

            //IVsTemplate template = null;
            //if (guidancePackage != null)
            //{
            //    RegisterTemplate(templateFile, guidancePackage.Name, new Guid(guidancePackage.Guid));
            //}
            //template = ((IVsTemplatesService)this).GetTemplate(templateFile);
            //if (template != null)
            //{
            //    templates.Add(template);
            //}
        }
Пример #3
0
        public MockConfigurationService(string file)
        {
            MemoryStream     mem    = new MemoryStream();
            XIncludingReader xir    = new XIncludingReader(file);
            XmlWriter        writer = XmlWriter.Create(mem);

            writer.WriteNode(xir, false);
            writer.Flush();

            mem.Position = 0;
            XmlReader reader = XmlReader.Create(mem);

            configuration = (Configuration.GuidancePackage)
                            new Configuration.Serialization.GuidancePackageSerializer().Deserialize(reader);

            this.metaData = new Hashtable();
        }
Пример #4
0
        IAssetDescription[] IVsTemplatesService.RegisterTemplates(string basePath, Configuration.GuidancePackage guidancePackage)
        {
            Guid PackageGuid = new Guid(guidancePackage.Guid);

            using (RegistryKey templatesKey = this.GetRegistryKey(PackageGuid, true))
            {
                templatesKey.SetValue("LastTemplate", 0);
                templatesKey.SetValue("PackageName", guidancePackage.Name);
            }
            ArrayList templates = new ArrayList();

            PopulateTemplates(basePath, templates, guidancePackage);
            foreach (IVsTemplate template in templates)
            {
                ((TemplateMetaData)template).Register(true);
            }
            return((IAssetDescription[])templates.ToArray(typeof(IAssetDescription)));
        }
Пример #5
0
 private void GetTemplates(string directory, ArrayList templates, Configuration.GuidancePackage guidancePackage)
 {
     if (!Directory.Exists(directory))
     {
         return;
     }
     foreach (string templateFile in Directory.GetFiles(directory, "*.vstemplate"))
     {
         GetTemplate(templateFile, templates, guidancePackage);
     }
     foreach (string subDirectory in Directory.GetDirectories(directory))
     {
         foreach (string templateFile in Directory.GetFiles(subDirectory, "*.vstemplate"))
         {
             GetTemplate(templateFile, templates, guidancePackage);
         }
     }
 }
Пример #6
0
 public CTCBuilder(Configuration.GuidancePackage package, string basePath, RegistryKey regRoot, IEnumerable <IVsTemplate> templates)
 {
     this.guidancePackage              = package;
     this.templates                    = templates;
     this.basePath                     = basePath;
     this.guidRecipeFrameworkPkg       = typeof(RecipeManagerPackage).GUID;
     this.guidRecipeFrameworkPkgCmdSet = new Guid(guidancePackage.Guid);
     this.groupCounter                 = 0x10000;
     this.menuCounter                  = 0x20000;
     this.defaultParentCommand         = new CommandID(ShellCmdDef.guidSHLMainMenu, ShellCmdDef.IDM_VS_MENU_TOOLS);
     this.ctcBitmap                    = new CTCBitmap(new CommandID(this.guidRecipeFrameworkPkgCmdSet, 100));
     this.newGroups                    = new Dictionary <string, NewGroup>(7);
     this.menus        = new Dictionary <string, MenuGroup>(7);
     this.placements   = new Hashtable(7);
     this.buttons      = new ArrayList();
     this.visibilities = new ArrayList();
     this.defaultIcon  = new CommandID(this.guidRecipeFrameworkPkg, ShellCmdDef.bmpidGaxNoIcon);
     this.regRoot      = regRoot;
     if (package.HostData != null && package.HostData.Icon != null)
     {
         this.defaultIcon = CreateBitmap(package.HostData.Icon);
     }
 }
Пример #7
0
        void IVsTemplatesService.UnregisterTemplates(string basePath, Configuration.GuidancePackage guidancePackage)
        {
            foreach (TemplateMetaData template in Components)
            {
                template.Register(false);
            }

            string dirItemsCache = Path.Combine(basePath, @"Templates\Items.Cache");

            if (Directory.Exists(dirItemsCache))
            {
                Directory.Delete(dirItemsCache, true);
            }
            string dirProjectsCache = Path.Combine(basePath, @"Templates\Projects.Cache");

            if (Directory.Exists(dirProjectsCache))
            {
                Directory.Delete(dirProjectsCache, true);
            }
            using (RegistryKey templatesKey = this.GetRegistryKey(Guid.Empty, true))
            {
                templatesKey.DeleteSubKey(new Guid(guidancePackage.Guid).ToString("B"));
            }
        }
Пример #8
0
 public MockConfigurationService(Configuration.GuidancePackage configuration)
 {
     this.configuration = configuration;
     this.metaData      = new Hashtable();
 }
Пример #9
0
 public CTCBuilder(Configuration.GuidancePackage package, string basePath, RegistryKey regRoot)
     : this(package, basePath, regRoot, null)
 {
 }