protected override void EndProcessing() { base.EndProcessing(); var packageDirectoriesMarkedForDeletion = _deleteOnRestartManager.GetPackageDirectoriesMarkedForDeletion(); if (packageDirectoriesMarkedForDeletion != null && packageDirectoriesMarkedForDeletion.Count != 0) { _deleteOnRestartManager.CheckAndRaisePackageDirectoriesMarkedForDeletion(); var message = string.Format( System.Globalization.CultureInfo.CurrentCulture, Resources.Cmdlet_RequestRestartToCompleteUninstall, string.Join(", ", packageDirectoriesMarkedForDeletion)); WriteWarning(message); } }
public RestartRequestBar(IDeleteOnRestartManager deleteOnRestartManager, IVsShell4 vsRestarter) { InitializeComponent(); _deleteOnRestartManager = deleteOnRestartManager; _vsRestarter = vsRestarter; // Since the DeleteonRestartManager is guranteed to be a singleton, we can rely on it for firing the events // both in package management ui and the powershell console. _deleteOnRestartManager.PackagesMarkedForDeletionFound += OnPackagesMarkedForDeletionFound; // Since Loaded event is not reliable, we do it at construction time initially, this is only for // the case when this needs to show up in package manager window (since package manager ui gets recreated, // the check can happen here). For powershell, it depends on the event handlers firigng up either via // package manager ui or the powershell commands like uninstall package. _deleteOnRestartManager.CheckAndRaisePackageDirectoriesMarkedForDeletion(); // Set DynamicResource binding in code // The reason we can't set it in XAML is that the VsBrushes class come from either // Microsoft.VisualStudio.Shell.12 or Microsoft.VisualStudio.Shell.14 assembly, // depending on whether NuGet runs inside VS12 or VS14. RequestRestartMessage.SetResourceReference(TextBlock.ForegroundProperty, VsBrushes.InfoTextKey); RestartBar.SetResourceReference(Border.BackgroundProperty, VsBrushes.InfoBackgroundKey); RestartBar.SetResourceReference(Border.BorderBrushProperty, VsBrushes.ActiveBorderKey); }