因此,我已经通过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();
}
}
}发布于 2014-03-03 21:30:32
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-02-27 09:05:50
有时包引用其他包的特定版本。您可以尝试在您的Microsoft.Owin文件(在<runtime>部分)中为web.config添加绑定重定向:
<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。
https://stackoverflow.com/questions/22063592
复制相似问题