【发布时间】:2019-10-17 08:20:07
【问题描述】:
我不太确定为什么会出现问题,我刚刚在 ASP.NET Core 中修改了一些关于 SignalR 的文档,这似乎意味着我不必安装任何额外的包(已经在创建新的 ASP.NET Core 项目(2.2 版)后引用 Microsoft.AspNetCore.All 和 Microsoft.AspNetCore.App。
我什至试过谷歌搜索,发现这篇博文:https://wakeupandcode.com/real-time-asp-net-core-web-apps-with-signalr/#dep
它写于 2018 年 12 月 23 日,作者确实确认我们不需要安装任何额外的包。
所以它真的在玩我,让我有一种愚蠢的感觉,不太清楚为什么我不能在我的项目中使用SignalR(我不打算安装任何额外的包,我认为它应该可以工作对我来说),只是想知道为什么它还不可用。以下代码无法编译:
using Microsoft.AspNetCore.SignalR;
它报告SignalR在具有Microsoft.AspNetCore.All和Microsoft.AspNetCore.App的项目中的命名空间Microsoft.AspNetCore中不存在。
实际上我在展开引用树时找不到Microsoft.AspNetCore.SignalR。
文档没有说明在哪里导入模块(这意味着它应该已经可用)。正如我所说,该项目的目标是.NET Core 2.2。你能向我解释一下这里可能有什么问题吗?
PS:我的项目是一个 Web API(不是 MVC)项目。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac" Version="4.9.4" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.2.0" />
</ItemGroup>
【问题讨论】:
-
它绝对是元包的一部分。我假设您已经尝试删除包目录,然后运行
dotnet restore -
@AluanHaddad 我不太清楚你的意思,我对新创建的项目没有做任何特别的事情。我根本不使用
dotnetCLI,我更喜欢单击 Visual Studio 上的按钮 -
试试看。元包明确列出了 SignalR,因此它应该可用 See here under dependencies。
-
我的
Microsoft.AspNetCore.All版本是2.0.9,实际上不包括SignalR。我不明白为什么创建一个新项目不会为其添加更新的版本。 -
@Hopeless 所以,我想问题解决了吗?您只需从元包参考中删除该版本号,.net 核心会自动采用最新版本来定位框架版本。喜欢:
<PackageReference Include="Microsoft.AspNetCore.All" />
标签: asp.net-core .net-core signalr