Ejemplo n.º 1
0
        /// <summary>
        /// Quand la compil est terminée, on copie tout dans le répertoire du projet de startup
        /// </summary>
        /// <param name="scope">The scope.</param>
        /// <param name="action">The action.</param>
        void buildEvents_OnBuildDone(vsBuildScope scope, vsBuildAction action)
        {
            if (!buildSuccess)
            {
                return;
            }

            // Si le fichier modèle n'existe pas, on n'insiste pas
            string modelFileName = ServiceLocator.Instance.ShellHelper.GetSolutionAssociatedModelName();

            if (!File.Exists(modelFileName))
            {
                return;
            }

            // Chargement du modèle
            ModelLoader loader = ModelLoader.GetLoader(modelFileName, true);

            // Si on est pas en phase de compil, on arrete
            if (loader == null || loader.Model == null ||
                loader.Model.Component == null ||
                (action != vsBuildAction.vsBuildActionBuild && action != vsBuildAction.vsBuildActionRebuildAll) ||
                scope != vsBuildScope.vsBuildScopeSolution)
            {
                return;
            }

            // Copie des références de runtime dans le répertoire d'execution
            RepositoryManager.CopyToRuntimeFolder(loader.Model);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Recherche le modèle associé à la solution courante
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// Le modèle associé est contenu dans un fichier portant le même nom que la solution
        /// </remarks>
        public static CandleModel GetModelFromCurrentSolution()
        {
            try
            {
                IShellHelper shell = ServiceLocator.Instance.GetService <IShellHelper>();
                if (shell == null)
                {
                    return(null);
                }

                // On cherche d'abord si le nom est enregistré dans la solution
                string candleModelPath = shell.GetSolutionAssociatedModelName();
                if (candleModelPath == null)
                {
                    // Si pas trouvé, on le déduit à partir du nom de la solution
                    string solutionName = (string)shell.Solution.Properties.Item("Name").Value;
                    candleModelPath =
                        System.IO.Path.Combine(shell.SolutionFolder,
                                               String.Concat(solutionName, ModelConstants.FileNameExtension));
                }
                // Recherche dans la RDT
                CandleModel model = GetModelFromCurrentSolution(candleModelPath);
                // Si tjs null, on essaye de le charger directement
                if (model == null)
                {
                    ModelLoader loader = ModelLoader.GetLoader(candleModelPath, true);
                    if (loader != null)
                    {
                        model = loader.Model;
                    }
                }
                return(model);
            }
            catch
            {
            }

            return(null);
        }