2013-03-07 39 views
1

試圖更新我的項目中的signalr庫,並突然解決方案無法生成。SignalR命名空間衝突?不能使用MapHubs()

我有這些傢伙引用:

Microsoft.AspNet.SignalR.Core.dll 
Microsoft.AspNet.SignalR.SystemWeb.dll 

我有這個在Global.asax中:

using System; 
using System.Web; 
using System.Web.Routing; 

智能感知看到的是RouteTable.Routes.MapHubs()來自SignalRRouteExtensions,但仍然中斷構建。項目是.net 4.0 MVC 3應用程序。不應該有任何問題。

你們有什麼想法,爲什麼發生這種情況?

Error 71 'System.Web.Routing.RouteCollection' does not contain a definition for 'MapHubs' and no extension method 'MapHubs' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?) Global.asax.cs 
+0

你看到的錯誤信息是什麼? – 2013-03-07 23:38:44

+0

我更新了錯誤消息 – Agzam 2013-03-07 23:40:15

+0

的問題我無法重現您的錯誤,只是創建了一個新的MVC3並執行了所有提到的操作。嘗試重新構建,如果這不起作用,你可以發佈一個簡單的複製項目嗎? – 2013-03-07 23:47:56

回答

4

您是否手動引用SignalR dll而不是通過NuGet安裝?如果是這樣,我會建議確保你的Microsoft.AspNet.SignalR.SystemWeb.dll是針對.NET 4.0而不是4.5。 SignalR提供該程序集的不同版本。

您可以使用Reflector或ildasm來幫助您做到這一點。請查看清單中程序集的TargetFrameworkAttribute::.ctor(string),並確保它包含「.NETFramework,Version = v4.0」。

+0

是啊,可能就是這樣......我通過nuget通過4.5項目手動獲取圖書館,並在4.0項目上手動hook'em ...蹩腳的工作。我的壞 – Agzam 2013-03-08 19:51:33

+0

@Agzam標記爲答案 – davidfowl 2013-03-12 09:24:47

+1

我只是試圖得到4.0 SignalR程序集,清理解決方案,試圖重建它 - 仍然不會工作...... :(核心和SystemWeb顯示目標框架爲4.0 – Agzam 2013-03-13 17:04:52

2

另外我發現,當使用不穩定的2.0.0-beta版本發生這種情況。當降級到1.1.3時,它工作正常。