Xamarin Forms PCL项目安装SocketIoClientDotNet 1.0.6报错求助
这个报错的核心原因是你的PCL项目使用的Profile7和SocketIoClientDotNet 1.0.6支持的框架不匹配——虽然你的项目目标是.NET Framework 4.5,但PCL的Profile是一个跨平台的框架子集,和普通的.NET Framework 4.5不是一回事,该包并没有针对Profile7编译对应的程序集。
下面是几个可行的解决方向:
检查包的支持框架细节
你可以在NuGet包管理器中查看SocketIoClientDotNet的依赖信息,或者直接解压该包的.nupkg文件(把后缀改成.zip),查看lib目录下的文件夹。如果没有portable-net45+wp80+win8+wpa81这类对应Profile7的目录,就说明它确实不支持这个PCL Profile。升级你的PCL Profile
Profile7是比较旧的PCL配置,很多新包都不再支持它。你可以尝试把项目的PCL Profile升级到更通用的版本,比如Profile259(支持.NET Framework 4.5、Windows 8、Windows Phone 8.1等):- 右键你的PCL项目,选择「属性」
- 在「应用程序」标签页点击「更改」按钮(PCL配置那里)
- 选择包含.NET Framework 4.5及更多现代平台的Profile,保存后再尝试安装包。
迁移到.NET Standard
PCL已经被.NET Standard取代,.NET Standard的兼容性更广,几乎所有现代NuGet包都支持它。如果你的项目可以迁移,建议直接把PCL项目转换成.NET Standard类库(右键项目→属性→应用程序→目标框架,选择合适的.NET Standard版本,比如2.0),之后再安装SocketIoClientDotNet应该就能正常兼容了。更换兼容的Socket.IO客户端包
如果上述方法都不行,可以试试其他对PCL支持更好的Socket.IO客户端,比如SocketIO.Client或者Xamarin.SocketIO,这些包通常对Xamarin Forms项目的兼容性更友好。
内容的提问来源于stack exchange,提问作者Nick Jones

