/// <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); }
/// <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); }