-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
Debugging function of Blazor Webassembly project (like watching variable values/evaluating in Immediate window) of Visual Studio 2022 does not work correctly with referencing a Visual Basic Library .NET 6 or .NET Standard Project containing Async method.
All debuging functions except breaking point in async methods in Visual Basic Library .NET 6 or .NET Standard Project, which is referred to C# Blazor WebAssembly project, do not work with the following message in Locals window;
Error processing variables: TypeError: Cannot read properties of undefined (reading 'subtype')
at Object.isArray (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\objectPreview\index.js:58:19)
at I.createVariableByType (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:114:27)
at Q.getChildren (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:659:45)
at process.children (node:internal/process/task_queues:96:5)
at n._a [as getVariables] (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:783:15)
at j.result [as _onVariables] (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\debugAdapter.js:269:30)
at t.default._onMessage (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\dap\connection.js:145:27)
However, debugging functions in other non-async methods in Visual Basic Library .NET 6 or .NET Standard Project work correctly.
I updated Visual Studio 2022 up to the latest version (17.3.6) and updated all nuget packages.
I also deleted obj/bin folders and did clean->rebuilding, but it did not disappeared.
I am attaching Locals Window screen shots for calling non-async method and asycn method.
The following is for none-async method;

The following is for async method;

The issue occurs for Visual Basic .NET Standard Library Project as well as Visual Basic .NET 6 library project.
It makes hard to develop Blazor WebAssembly apps with existing Visual Basic .NET Standard/.NET6 Library projects which utilize async keyword.
Expected Behavior
All debugging functions - watching local variables and evaluating Immediate Window - must work with async method in referred Visual Basic Library Projects.
Steps To Reproduce
-
Open Visual Studio 2022
-
Create a Blazor WebAssembly Project (C# .NET 6) without ASP.NET Core Hosting
-
Add a Visual Basic Library Project (.NET 6 or .NET Standard 2.0/2.1)
-
Add project reference of Visual Basic Library Project to Blazor WebAssembly Project
-
Add a Class to Visual Basic Library Project as the followings;
Public Class TestService
Public Function Test(data As String) As String
Return data
End Function
Public Async Function TestAsync(data As String) As Task(Of String)
Await Task.Delay(10)
Return data
End Function
End Class
- Modify Program.cs of Blazor WebAssembly Project as the followings;
using BlazorApp1;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
//To call VB Library Project methods
var testService = new ClassLibrary1.TestService();
var result = testService.Test("1234");
var resultAsync = await testService.TestAsync("1234");
await builder.Build().RunAsync();
-
Add a break point at the line of 'var result = testService.Test("1234");'
-
Start Blazor WebAssembly Project and debug into testService.Test and await testService.TestAsync.
-
You can see "data" variable value in Auto/Locals window in TestService.Test method.
-
You cannot see "data" variable value in Auto/Locals window in TestService.TestAsync method.
Exceptions (if any)
Error processing variables: TypeError: Cannot read properties of undefined (reading 'subtype')
at Object.isArray (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\objectPreview\index.js:58:19)
at I.createVariableByType (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:114:27)
at Q.getChildren (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:659:45)
at process.children (node:internal/process/task_queues:96:5)
at n._a [as getVariables] (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\variableStore.js:783:15)
at j.result [as _onVariables] (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\adapter\debugAdapter.js:269:30)
at t.default._onMessage (c:\program files\microsoft visual studio\2022\enterprise\common7\ide\commonextensions\microsoft\jsdiagnostics\debugger\debugAdapter\out\src\dap\connection.js:145:27)
.NET Version
6.0.402
Anything else?
Test Envrionment:
Windows 10
Visual Studio 2022
.NET 6 Blazor WebAssembly Project Template
C:\Program Files\Microsoft Visual Studio\2022\Enterprise>dotnet --info
.NET SDK:
Version: 6.0.402
Commit: 6862418796
Runtime Environment:
OS Name: Windows
OS Version: 10.0.19043
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\6.0.402\
global.json file:
Not found
Host:
Version: 6.0.10
Architecture: x64
Commit: 5a400c212a
.NET SDKs installed:
5.0.214 [C:\Program Files\dotnet\sdk]
5.0.303 [C:\Program Files\dotnet\sdk]
5.0.408 [C:\Program Files\dotnet\sdk]
6.0.402 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.15 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]