是否存在适用于VB和.NET 5的ASP.NET Core Web项目Visual Studio 2019模板
关于VS2019 v16.3缺少.NET 5 ASP.NET Core VB SignalR模板的问题解答
模板缺失原因
.NET 5阶段官方没有在Visual Studio内置VB语言的ASP.NET Core类项目模板,该问题和你使用的企业版授权没有关系,所有版本VS2019 16.3都没有预置对应模板。你看到的其他用户的VB SignalR项目都是通过基础项目改造得到的,没有专用的预置模板。
可用实现方案
方案1:通过命令行直接生成VB ASP.NET Core空项目
打开Visual Studio开发者命令提示符,执行以下命令即可生成指定名称的VB语言.NET 5空Web项目:dotnet new web -lang VB -n 你的项目名称
生成后直接安装Microsoft.AspNetCore.SignalRNuGet包,参照C#项目的配置逻辑编写VB版的启动代码、Hub类即可。
方案2:手动改造VB控制台项目
- 新建VB语言的.NET 5控制台项目
- 右键项目选择编辑项目文件,将根节点的Sdk属性修改为
Microsoft.NET.Sdk.Web,在属性组中添加<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>,确认目标框架为net5.0 - 安装
Microsoft.AspNetCore.App元包和Microsoft.AspNetCore.SignalRNuGet包 - 替换Program.vb的启动代码,添加Hub路由映射,新增自定义的Hub类即可完成项目搭建,示例代码如下:
Imports Microsoft.AspNetCore.Builder Imports Microsoft.Extensions.DependencyInjection Imports Microsoft.AspNetCore.SignalR ' 自定义Hub类示例 Public Class ChatHub Inherits Hub Public Async Function SendMessage(user As String, message As String) As Task Await Clients.All.SendAsync("ReceiveMessage", user, message) End Function End Class Module Program Sub Main(args As String()) Dim builder = WebApplication.CreateBuilder(args) ' 注册SignalR服务 builder.Services.AddSignalR() Dim app = builder.Build() ' 映射Hub路由 app.MapHub(Of ChatHub)("/chathub") app.Run() End Sub End Module
两种方案生成的项目运行逻辑和C#版SignalR项目完全一致,仅语法做对应转换即可。
内容的提问来源于stack exchange,提问作者Brobic Vripiat
相关产品推荐
相关产品推荐

