Exemplo n.º 1
0
        public static void UnloadOrReloadProjects(UnReLoad unReLoad, IEnumerable<string> projects, Action<string> cout)
        {
            var hash = HashHelper.MakeHashWithOriginal(projects, cout);

            var parameters = CreateParams(cout);

            ExecuteOnProjectsInSolution(project =>
                {
                    var upperProjectName = project.Name.ToUpperInvariant();
                    if (hash.ContainsKey(upperProjectName))
                    {
                        UnloadOrReloadProject(project, parameters, unReLoad);
                        hash.Remove(upperProjectName);
                    }
                });

            foreach (var project in hash.Values.OrderBy(p => p))
            {
                cout(string.Format(Resources.ErrorMessageProjectWasNotFound, project));
            }
        }
Exemplo n.º 2
0
        public static void UnloadOrReloadAllProjects(UnReLoad unReLoad, Action<string> cout)
        {
            var parameters = CreateParams(cout);

            ExecuteOnProjectsInSolution(project => UnloadOrReloadProject(project, parameters, unReLoad));
        }
Exemplo n.º 3
0
        private static void UnloadOrReloadProject(VSProject project, UnReLoadParams parameters, UnReLoad unReLoad, bool setAsStartup = false)
        {
            try
            {
                var path = string.Format("{0}\\{1}", parameters.SolutionName, project.Path);

                var obj = parameters.SolutionHierarchy.GetItem(path);
                obj.Select(vsUISelectionType.vsUISelectionTypeSelect);

                switch (unReLoad)
                {
                    case UnReLoad.Unload:
                        if (project.IsLoaded)
                        {
                            parameters.Out(string.Format(Resources.MessageUnloadingProject, project.Name));
                            AppData.Current.DTE.ExecuteCommand(SolutionExplorerCommands.UnloadProject);
                        }
                        break;
                    case UnReLoad.Reload:
                        if (!project.IsLoaded)
                        {
                            parameters.Out(string.Format(Resources.MessageReloadingProject, project.Name));
                            AppData.Current.DTE.ExecuteCommand(SolutionExplorerCommands.ReloadProject);
                        }

                        if (setAsStartup)
                        {
                            parameters.Out(string.Format(Resources.MessageSettingProjectAsStartup, project.Name));
                            AppData.Current.DTE.ExecuteCommand(SolutionExplorerCommands.SetAsStartup);
                        }
                        break;
                    default:
                        throw new ArgumentOutOfRangeException("unReLoad");
                }
            }
            catch (Exception ex)
            {
                //parameters.Out(string.Format("Failed to {0} project {1}, {2}", unReLoad == UnReLoad.Unload ? "unload" : "reload", project.Name, ex.Message));
            }
        }