4

所以我已经通过 Nuget 安装了 SignalR,这取决于Microsoft.Owin它随后安装的位置。每当我运行我的应用程序时,它都会FileLoadException在 Startup.cs omapp.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();
        }
    }
}
4

2 回答 2

4

有时包是指其他包的特定版本。您可以尝试Microsoft.Owinweb.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

于 2014-02-27T09:05:50.517 回答
0

SignalR 的最新版本依赖于 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/tutorial-signalr-20-self-host

于 2014-03-03T21:30:32.617 回答