Пример #1
0
        internal static void EnsureSelectedProjReferencesAreLoadedCommand(IServiceProvider provider, bool unloadUnusedProjects)
        {
            var dte = Package.GetGlobalService(typeof(DTE)) as DTE;

            string[] selectedProjectNames = DteUtil.GetSelectedItemNames(dte);

            IRoslynSolutionAnalysis roslyn = new RoslynSolutionAnalysis();

            var allProjectNamesToLoad = roslyn
                                        .GetRecursivelyReferencedProjects(dte.Solution.FileName, selectedProjectNames)
                                        .Result;

            EnsureProjectsLoadedByNames(dte, allProjectNamesToLoad, unloadUnusedProjects);

            string message = "Ensure only selected projects loaded recurisvely complete";

            // Show a message box to prove we were here
            VsShellUtilities.ShowMessageBox(
                provider,
                message,
                ProjectFocuserCommandPackage.MessageBoxName,
                OLEMSGICON.OLEMSGICON_INFO,
                OLEMSGBUTTON.OLEMSGBUTTON_OK,
                OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
        }
Пример #2
0
        public static void EnsureMaxVisualStudioMsBuildVersionHasBeenRegistered()
        {
            try
            {
                if (MaxVisualStudionVersionHasBeenRegistered)
                {
                    return;
                }

                lock (MaxVisualStudionVersionRegistrationLock)
                {
                    if (MaxVisualStudionVersionHasBeenRegistered)
                    {
                        return;
                    }

                    var maxVisualStudioInstance = MSBuildLocator
                                                  .QueryVisualStudioInstances()
                                                  .OrderByDescending(x => x.Version.Major)
                                                  .First();

                    MSBuildLocator.RegisterInstance(maxVisualStudioInstance);

                    MaxVisualStudionVersionHasBeenRegistered = true;

                    DteUtil.WriteExtensionOutput($"Using msbuild version from Visual Studio version {maxVisualStudioInstance.Version}, " +
                                                 $"path: {maxVisualStudioInstance.MSBuildPath}");
                }
            }
            catch (Exception ex)
            {
                DteUtil.WriteExtensionOutput($"Error during Visual Studio msbuild registration. {ex.Message}");
            }
        }