所以我已经通过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
Startup.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();
}
}
}
答案 0 :(得分:3)
有时包会引用其他包的特定版本。您可以尝试在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
。
答案 1 :(得分:0)
最新版本的SignalR依赖于Microsoft.Owin 2.0.2.0,而不是2.0.1.0。请参阅以下教程 - 您将要在程序包管理器中添加Microsoft.AspNet.SignalR.SelfHost,而不是Microsoft.Owin。