.NET 6服务端项目应安装哪个SignalR包替代已弃用旧包?
解决方案
弃用SignalR包的替换说明
.NET 6 环境下,Microsoft.AspNetCore.SignalR和Microsoft.AspNetCore.SignalR.Core这两个.NET Core 2.x时代的独立包已经被整合进ASP.NET Core共享框架,不存在单独的替代NuGet包,不需要额外安装独立维护的SignalR相关包。
独立类库集成SignalR且避免CS5001编译错误的配置方法
不要将类库项目的SDK修改为Microsoft.NET.Sdk.Web,该SDK默认会将项目识别为需要程序入口点的可执行Web应用,才会触发"不存在适合作为入口点的静态Main方法"的CS5001编译错误。正确配置步骤如下:
- 类库项目保留默认的
Microsoft.NET.Sdk作为项目SDK - 在项目的.csproj文件中添加ASP.NET Core共享框架的引用,即可使用全部SignalR相关类型,完整配置示例如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <!-- 保留项目原有其他配置,比如可空引用类型、隐式using等配置 --> </PropertyGroup> <ItemGroup> <!-- 引入ASP.NET Core共享框架,包含所有SignalR核心能力 --> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup> </Project>
- 配置完成后,你可以在这个独立类库中正常编写自定义Hub、SignalR相关的服务注册逻辑,编译生成的是标准类库程序集,没有入口点要求,解决方案内的其他项目可以正常引用该程序集,通过构造函数注入依赖的SignalR相关服务也不会有问题。主Web项目只需要正常完成SignalR中间件配置、映射Hub终结点即可。
内容的提问来源于stack exchange,提问作者Ivan-Mark Debono
相关产品推荐
相关产品推荐

