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