/// <summary>
        /// Nom du template du projet
        /// </summary>
        /// <param name="layer">The layer.</param>
        /// <returns></returns>
        /// <remarks>
        /// Le template est soit un template standard de VS, soit un template fournit dans la stratégie.
        /// </remarks>
        public string GetProjectTemplate(SoftwareLayer layer)
        {
            string template = MapPath(_projectTemplate);

            if (File.Exists(template))
            {
                // Template fournit avec la stratégie.
                // On le décompresse dans un dossier temporaire
                string folder = Utils.GetTemporaryFolder();

                // On extrait le ichier de template (.vstemplate)
                RepositoryZipFile zipFile = new RepositoryZipFile(template);
                zipFile.ExtractAll(folder);
                List <string> files = Utils.SearchFile(folder, "*.vstemplate");

                // Si on le trouve, c'est bon
                if (files.Count > 0)
                {
                    return(files[0]); // On supprimera le répertoire temporaire aprés
                }
                // On a rien trouvé
                Utils.RemoveDirectory(folder);
            }
            return(template);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Extraction des fichiers du package et chargement des assemblies
        /// </summary>
        public void Extract()
        {
            Utils.RemoveDirectory(PackageFolder);
            if (Directory.Exists(PackageFolder) && Directory.GetFiles(PackageFolder, ".dll").Length > 0)
            {
                IIDEHelper ide = ServiceLocator.Instance.IDEHelper;
                if (ide != null)
                {
                    ide.ShowMessage(
                        String.Format("Change detected in strategies package {0} - You must restart Visual Studio",
                                      _name));
                }
            }

            Directory.CreateDirectory(PackageFolder);

            RepositoryZipFile zip = new RepositoryZipFile(FullName, true);

            zip.ExtractAll(PackageFolder);
        }