public static string FindActiveProjectCfgName(this IVsSolutionBuildManager5 solutionBuildManager, Guid projectId) { string projectCfgCanonicalName; var hr = solutionBuildManager.FindActiveProjectCfgName(ref projectId, out projectCfgCanonicalName); if (hr < 0) { Marshal.ThrowExceptionForHR(hr); } return(projectCfgCanonicalName); }
protected override async Task InitializeAsync( CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; componentModel.DefaultCompositionService.SatisfyImportsOnce(this); _restoreWorker = new Lazy <ISolutionRestoreWorker>( () => componentModel.GetService <ISolutionRestoreWorker>()); _settings = new Lazy <ISettings>( () => componentModel.GetService <ISettings>()); _solutionManager = new Lazy <IVsSolutionManager>( () => componentModel.GetService <IVsSolutionManager>()); var lockService = new Lazy <INuGetLockService>( () => componentModel.GetService <INuGetLockService>()); var updateSolutionEvent = new VsUpdateSolutionEvent(lockService); // Don't use CPS thread helper because of RPS perf regression await ThreadHelper.JoinableTaskFactory.RunAsync(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = (EnvDTE.DTE) await GetServiceAsync(typeof(SDTE)); _buildEvents = dte.Events.BuildEvents; _buildEvents.OnBuildBegin += BuildEvents_OnBuildBegin; UserAgent.SetUserAgentString( new UserAgentStringBuilder().WithVisualStudioSKU(dte.GetFullVsVersionString())); _solutionBuildManager = (IVsSolutionBuildManager5)await GetServiceAsync(typeof(SVsSolutionBuildManager)); Assumes.Present(_solutionBuildManager); _solutionBuildManager.AdviseUpdateSolutionEvents4(updateSolutionEvent, out _updateSolutionEventsCookie4); }); await SolutionRestoreCommand.InitializeAsync(this); await base.InitializeAsync(cancellationToken, progress); }
/// <summary> /// Retrives the configuration and the platform using the IVsSolutionBuildManager2 interface. /// </summary> /// <param name="serviceProvider">A service provider.</param> /// <param name="hierarchy">The hierrachy whose configuration is requested.</param> /// <returns>true if successfull.</returns> public static bool TryGetActiveConfigurationAndPlatform(System.IServiceProvider serviceProvider, Guid projectId, out ConfigCanonicalName configCanonicalName) { if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } IVsSolutionBuildManager5 solutionBuildManager = serviceProvider.GetService(typeof(SVsSolutionBuildManager)) as IVsSolutionBuildManager5; if (solutionBuildManager == null) { configCanonicalName = new ConfigCanonicalName(); return false; } string canonicalName; ErrorHandler.ThrowOnFailure(solutionBuildManager.FindActiveProjectCfgName(projectId, out canonicalName)); configCanonicalName = new ConfigCanonicalName(canonicalName); return true; }