目標平台為Windows Server 2003,ASP.NET MVC專案只能選擇.NET 4.0,在NuGet用關鍵字signalr找到程式包,安裝時卻出現以下錯誤:
Could not install package 'Microsoft.Owin.Security 2.0.2'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
查過官方文件,很好! SignalR 2.0需要.NET 4.5,可憐的Windows Server 2003... 那,偷偷把Server升級到2008吧! 腦海立刻浮現: 正式機升級隔天,某個系統異常公司大亂,胡亂升級OS的那個老傢伙被眾人拉到牆角餵磚頭,沒多久就被推出午門問斬了... 不行,我要冷靜,想想怎麼在.NET 4安裝SingalR比較實在。
NuGet GUI上提供的元件以最新版為主,若要安裝舊版,需透過Package Manager Console下指令: (輸入指令時,可以按Tab帶出可用選項。例如,敲入Version後按Tab,會列出所有可用版本,就甘心A)
Install-Package Microsoft.AspNet.SignalR –Version 1.2.1
提醒: 若解決方案中有多個專案,記得要選對Default Project(目上圖右上方的下拉選單)
安裝完成,就能開心地在.NET 4中使用SignalR囉~
註: 依實際經驗,SingalR 1.2與SignalR 2.0的程式寫法差異不大,不太需要依版本調整。至於二者部署上的差別,可以參考文件。