public static T RunOnUiThread <T>(Func <T> func) { // We must manually transfer the CallStackDepthCounter value across the thread boundary, because // CallContext logical data isn't preserved when using Microsoft.VisualStudio.Shell.ThreadHelper var callStackData = CallStackDepthCounter.Data; return(ThreadHelper.Generic.Invoke(() => { CallStackDepthCounter.Data = callStackData; ConsoleInitializer.EnsureRunspaceOnCurrentThread(); // In NuGet 1.2 and later, the UI thread doesn't necessarily have a PowerShell Runspace until we call this return func(); })); }
void CreateConsoleInitializer() { fakeConsoleHost = new FakePackageManagementConsoleHost(); initializer = new ConsoleInitializer(fakeConsoleHost); }