如何在VS Code中通过dotnet CLI同时运行ASP.NET Core Web API与Blazor WASM?
如何用dotnet CLI在VS Code中同时运行ASP.NET Core Web API和Blazor WASM项目
完全可以通过dotnet CLI和VS Code配置实现两个项目同时运行,以下是几种实用方案:
方案一:手动开启两个终端分别运行
这是最直接的方式,无需额外配置:
- 打开VS Code并加载包含两个项目的解决方案文件夹
- 打开第一个终端(Ctrl+`),导航到Web API项目目录:
cd ./YourApiProjectName dotnet run - 打开第二个终端(点击终端面板的"+"号),导航到Blazor WASM项目目录:
cd ./YourBlazorProjectName dotnet run - 注意:Blazor WASM默认使用独立端口,需确保前端
Program.cs中的API地址配置正确,例如:
端口号请匹配Web API项目builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001") });launchSettings.json中的applicationUrl配置。
方案二:配置VS Code launch.json一键启动两个项目
通过配置调试文件,可实现点击一次按钮同时启动两个项目:
- 打开VS Code的运行和调试面板(Ctrl+Shift+D)
- 点击"创建launch.json文件",选择.NET环境
- 替换生成的
launch.json内容为以下配置(注意替换项目名称和.NET版本):{ "version": "0.2.0", "configurations": [ { "name": "Web API", "type": "coreclr", "request": "launch", "program": "${workspaceFolder}/YourApiProject/bin/Debug/net8.0/YourApiProject.dll", "args": [], "cwd": "${workspaceFolder}/YourApiProject", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" } }, { "name": "Blazor WASM", "type": "coreclr", "request": "launch", "program": "${workspaceFolder}/YourBlazorProject/bin/Debug/net8.0/YourBlazorProject.dll", "args": [], "cwd": "${workspaceFolder}/YourBlazorProject", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" } } ], "compounds": [ { "name": "Run API + Blazor", "configurations": ["Web API", "Blazor WASM"], "stopAll": true } ] } - 在运行面板的下拉菜单中选择"Run API + Blazor",点击启动按钮即可同时运行两个项目
方案三:使用dotnet watch实现热重载运行
如果需要代码改动后自动刷新/重启项目,用dotnet watch替代dotnet run:
- 第一个终端:
cd ./YourApiProjectName dotnet watch run - 第二个终端:
修改API或Blazor代码时,项目会自动重启或刷新页面,提升开发效率。cd ./YourBlazorProjectName dotnet watch run
额外注意事项
- 端口冲突:检查两个项目
launchSettings.json中的applicationUrl,确保端口不重复(例如API用5001,Blazor用5002) - 跨域问题:如果Blazor是独立部署,需在Web API中配置跨域中间件,允许Blazor的访问地址:
builder.Services.AddCors(options => { options.AddPolicy("AllowBlazor", policy => policy.WithOrigins("https://localhost:5002") .AllowAnyHeader() .AllowAnyMethod()); }); app.UseCors("AllowBlazor");
内容的提问来源于stack exchange,提问作者F_Kamolov
相关产品推荐
相关产品推荐

