diff --git a/tooling/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj b/tooling/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj index 25b39ca0c7..817362ce9d 100644 --- a/tooling/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj +++ b/tooling/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj @@ -343,6 +343,14 @@ + + Microsoft.CodeAnalysis.Razor + False + + + + + {0f265874-c592-448b-bc4f-3430ab03e0dc} Microsoft.CodeAnalysis.Razor.Workspaces @@ -375,6 +383,7 @@ + diff --git a/tooling/Microsoft.VisualStudio.RazorExtension/Properties/BindingRedirectAttributes.cs b/tooling/Microsoft.VisualStudio.RazorExtension/Properties/BindingRedirectAttributes.cs index edafee39b8..17eabc574f 100644 --- a/tooling/Microsoft.VisualStudio.RazorExtension/Properties/BindingRedirectAttributes.cs +++ b/tooling/Microsoft.VisualStudio.RazorExtension/Properties/BindingRedirectAttributes.cs @@ -11,6 +11,14 @@ using Microsoft.VisualStudio.Shell; OldVersionUpperBound = "1.2.0.0", NewVersion = "1.2.0.0")] +[assembly: ProvideBindingRedirection( + AssemblyName = "Microsoft.CodeAnalysis.Razor", + GenerateCodeBase = true, + PublicKeyToken = "adb9793829ddae60", + OldVersionLowerBound = "0.0.0.0", + OldVersionUpperBound = "1.2.0.0", + NewVersion = "1.2.0.0")] + [assembly: ProvideBindingRedirection( AssemblyName = "Microsoft.CodeAnalysis.Razor.Workspaces", GenerateCodeBase = true, diff --git a/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoToolWindow.cs b/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoToolWindow.cs index f8aa260d51..dfd80d016e 100644 --- a/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoToolWindow.cs +++ b/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoToolWindow.cs @@ -3,11 +3,12 @@ using System; using System.Runtime.InteropServices; -using Microsoft.VisualStudio.Shell; +using Microsoft.CodeAnalysis; using Microsoft.VisualStudio.ComponentModelHost; using Microsoft.VisualStudio.LanguageServices; using Microsoft.VisualStudio.LanguageServices.Razor; -using Microsoft.CodeAnalysis; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; namespace Microsoft.VisualStudio.RazorExtension.RazorInfo { @@ -39,6 +40,8 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo _workspace = componentModel.GetService(); _workspace.WorkspaceChanged += Workspace_WorkspaceChanged; + + Reset(_workspace.CurrentSolution); } protected override void Dispose(bool disposing) @@ -59,7 +62,7 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo return; } - var viewModel = new RazorInfoViewModel(this, _workspace, _assemblyResolver, _directiveResolver, _tagHelperResolver, _documentGenerator); + var viewModel = new RazorInfoViewModel(this, _workspace, _assemblyResolver, _directiveResolver, _tagHelperResolver, _documentGenerator, OnException); foreach (var project in solution.Projects) { viewModel.Projects.Add(new ProjectViewModel(project)); @@ -68,6 +71,17 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo ((RazorInfoToolWindowControl)this.Content).DataContext = viewModel; } + private void OnException(Exception ex) + { + VsShellUtilities.ShowMessageBox( + this, + ex.ToString(), + "Razor Error", + OLEMSGICON.OLEMSGICON_CRITICAL, + OLEMSGBUTTON.OLEMSGBUTTON_OK, + OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); + } + private void Workspace_WorkspaceChanged(object sender, WorkspaceChangeEventArgs e) { switch (e.Kind) diff --git a/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoViewModel.cs b/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoViewModel.cs index 93ea7c5b6c..f9052c6d75 100644 --- a/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoViewModel.cs +++ b/tooling/Microsoft.VisualStudio.RazorExtension/RazorInfo/RazorInfoViewModel.cs @@ -25,6 +25,7 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo private readonly ITagHelperResolver _tagHelperResolver; private readonly IServiceProvider _services; private readonly Workspace _workspace; + private readonly Action _errorHandler; private DocumentViewModel _currentDocument; private DocumentInfoViewModel _currentDocumentInfo; @@ -40,7 +41,8 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo IRazorEngineAssemblyResolver assemblyResolver, IRazorEngineDirectiveResolver directiveResolver, ITagHelperResolver tagHelperResolver, - IRazorEngineDocumentGenerator documentGenerator) + IRazorEngineDocumentGenerator documentGenerator, + Action errorHandler) { _services = services; _workspace = workspace; @@ -48,6 +50,7 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo _directiveResolver = directiveResolver; _tagHelperResolver = tagHelperResolver; _documentGenerator = documentGenerator; + _errorHandler = errorHandler; GenerateCommand = new RelayCommand(ExecuteGenerate, CanExecuteGenerate); LoadCommand = new RelayCommand(ExecuteLoad, CanExecuteLoad); @@ -180,7 +183,7 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo } catch (Exception ex) { - Console.WriteLine(ex); + _errorHandler.Invoke(ex); } IsLoading = false; diff --git a/tooling/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest b/tooling/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest index e952576d9c..2e7e1c0188 100644 --- a/tooling/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest +++ b/tooling/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest @@ -22,6 +22,8 @@ + +