所以我通过 Nuget 安装了 SignalR,它取决于 Microsoft.Owin 然后安装它。每当我运行我的应用程序时,它都会抛出 FileLoadException 在 Startup.cs 中 app.MapSignalR(); 线。它显示“无法加载文件或程序集“Microsoft.Owin,Version=2.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集的引用不匹配。”

我确信它包括 Microsoft.Owin.dll 但是当我尝试通过 Nuget 重新安装它时,它说无法重新安装 Microsoft.Owin.XML

启动.cs

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}
有帮助吗?

解决方案

最新版本的信号依赖于Microsoft.owin 2.0.2.0,而不是2.0.1.0。请参阅以下教程 - 您要在包管理器中添加Microsoft.aspnet.signalr.Selfhost,而不是Microsoft.owin。

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/20/tutorial-signalr-20-host

其他提示

有时包引用其他包的特定版本。您可以尝试添加绑定重定向 Microsoft.Owin 在你的 web.config 文件(在 <runtime> 部分):

<dependentAssembly>
  <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>

这告诉了所有引用旧版本的内容 2.1.0.0 使用 2.1.0.0 反而。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top