From 87fd34a1dea2242ddf2de11db084f126b925a99e Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 27 Apr 2013 21:05:17 +0100 Subject: [PATCH] Fix exception when there is a file conflict installing jQuery. Always use UI thread when opening FileConflictResolver dialog when running PowerShell scripts. --- .../Project/Src/FileConflictResolver.cs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs b/src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs index 47b2281cc3..e7b3144035 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs @@ -9,12 +9,28 @@ namespace ICSharpCode.PackageManagement { public class FileConflictResolver : ServiceWithWorkbenchOwner, IFileConflictResolver { + IPackageManagementWorkbench workbench; + + public FileConflictResolver() + : this(new PackageManagementWorkbench()) + { + } + + public FileConflictResolver(IPackageManagementWorkbench workbench) + { + this.workbench = workbench; + } + public FileConflictResolution ResolveFileConflict(string message) { - var viewModel = new FileConflictViewModel(message); - FileConflictView view = CreateFileConflictView(viewModel); - view.ShowDialog(); - return viewModel.GetResolution(); + if (workbench.InvokeRequired) { + return workbench.SafeThreadFunction(() => ResolveFileConflict(message)); + } else { + var viewModel = new FileConflictViewModel(message); + FileConflictView view = CreateFileConflictView(viewModel); + view.ShowDialog(); + return viewModel.GetResolution(); + } } FileConflictView CreateFileConflictView(FileConflictViewModel viewModel)