升级SignalR 2.1.0 Preview2到RC1后调用services.AddSignalR()遇文件未找到异常
解决ASP.NET Core RC1升级后System.Memory加载失败问题
我之前升级ASP.NET Core包到RC1的时候也碰到过一模一样的问题!当时折腾了好一会儿才搞定,给你分享几个亲测有效的解决办法:
统一NuGet包版本:先检查所有Microsoft.AspNetCore相关的包(包括Microsoft.AspNetCore.SignalR)是不是都升级到了RC1版本。有时候个别依赖包没同步更新,就会导致版本冲突。打开NuGet包管理器,筛选项目里的AspNetCore包,批量更新到RC1就行。
添加程序集绑定重定向:如果确认包都更对了还是报错,那大概率是版本重定向的问题。在项目的
web.config(或者app.config)里添加以下配置,强制让应用使用你当前安装的System.Memory版本:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <!-- 把newVersion改成你项目中实际安装的System.Memory版本,比如4.5.3 --> <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.5.3" /> </dependentAssembly> </assemblyBinding> </runtime>
你可以在NuGet包管理器的“已安装”列表里找到System.Memory,查看它的具体版本号。
- 清理缓存并重新还原:有时候NuGet缓存的旧包会干扰新版本的加载。打开命令行,进入项目目录,执行以下命令:
dotnet clean dotnet nuget locals all --clear dotnet restore
清理完缓存再重新还原包,很多时候能解决奇怪的版本问题。
- 检查VS和SDK版本:VS2017 15.7对.NET Core 2.1 RC1的支持需要对应的SDK。你可以打开Visual Studio Installer,确认已经安装了.NET Core 2.1 RC1 SDK,如果没有的话就添加这个组件,顺便把VS本身的更新也补上。
内容的提问来源于stack exchange,提问作者Bastien verschaete
相关产品推荐
相关产品推荐

