private DtoProject GetClickOnceRelation(DtoProject proj) { DtoProject[] CLICK_ONCE_FINDED = new UtilsProjects().FindProjects(_CLICK_ONCE_PATH, true); DtoProject clickOnce; Print obj = new Print(); if (proj == null) { obj.PrintError("No se ha encontrado el proyecto."); obj.PressKeyToContinue(); ReloadMenu(); } if (string.IsNullOrEmpty(proj.ClickOnceSolution)) { clickOnce = (DtoProject)CLICK_ONCE_FINDED .Where(x => x.Name == (string.IsNullOrEmpty(_CLICK_ONCE_PREFIX) ? proj.Name : string.Concat(proj.Name, ".", _CLICK_ONCE_PREFIX))) .SingleOrDefault(); } else { clickOnce = (DtoProject)CLICK_ONCE_FINDED .Where(x => x.Name == proj.ClickOnceSolution) .SingleOrDefault(); } if (clickOnce == null) { obj.PrintError("No se ha encontrado el proyecto del Click Once asociado."); obj.PressKeyToContinue(); ReloadMenu(); } ShowInfoVersionProject(clickOnce); return(clickOnce); }
private void GenerateClickOnce() { Print obj = new Print(); obj.ClearConsole(); obj.PrintTitle("Proyectos Disponibles para la Publicacion"); obj.PrintNewLine(); DtoProject[] PROJECTS_FINDED = new UtilsProjects().FindProjects(Directory.GetParent(_SOLUTION_PATH).ToString()); foreach (DtoProject project in PROJECTS_FINDED) { obj.PrintString(string.Format("{0}: {1}", project.id, project.Name)); } obj.PrintNewLine(); obj.PrintString("Seleccione los proyectos que desee publicar....."); obj.PrintString("Ejemplo..."); obj.PrintString("\t Para un solo Proyecto: 1"); obj.PrintString("\t Para Multiples Proyectos: 1 3"); obj.PrintString("\t Para Todos los proyectos: A"); obj.PrintString("\t Para Cancelar teclee Esc"); obj.PrintNewLine(); object[] selection = obj.GetKeyInt(" "); ValidProjectSelection(selection, PROJECTS_FINDED); obj.ClearConsole(); obj.PrintString("Iniciando espere un momento..."); obj.PrintInfo("Compilando Solucion...."); //COMPILE SOLUTION if (!RunDevEnv(_SOLUTION_PATH)) { obj.PrintError("No se puede continuar error en la compilaciĆ³n del proyecto."); return; } obj.PrintString("Iniciando Generacion de Click Once...."); List <DtoProject> CollectionCO = new List <DtoProject>(); foreach (object valor in selection) { DtoProject proj = (DtoProject)PROJECTS_FINDED.Where(x => x.id == int.Parse(valor.ToString())).SingleOrDefault(); DtoProject clickOnce = GetClickOnceRelation(proj); obj.PrintInfo("Generando Click Once...."); //PUBLISH PROJECT if (!RunMsbuild(clickOnce.FullPath)) { if (!obj.ShowQuestionContinue()) { return; } } CollectionCO.Add(clickOnce); } if (_SQL_GENERATE) { GenerateScripts(CollectionCO.ToArray()); } }