VS2017中仅使用ServiceStack Core版本时的框架冲突解决方法
解决.NET Framework 4.6.1控制台应用中JsonServiceClient编译错误
哥们,你这明显是踩了ServiceStack包版本匹配的坑——给.NET Framework项目用了Core专属的ServiceStack包,这俩压根不兼容,才会导致实例化JsonServiceClient时一堆编译报错。我给你梳理下具体的解决步骤:
- 替换控制台项目的ServiceStack包
- 打开Visual Studio的NuGet包管理器,先把控制台项目里的
ServiceStack.Client.Core v5.1.0彻底卸载 - 安装不带
.Core后缀的ServiceStack.Client v5.1.0——这个才是专门给.NET Framework环境设计的版本
- 打开Visual Studio的NuGet包管理器,先把控制台项目里的
- 同步类库项目的依赖包
虽然你的类库是.NET Standard 2.0,理论上能跑Core版本的包,但为了避免跨框架的兼容性问题,建议把四个类库中的所有ServiceStack.*.Core包都换成对应的非Core版本(比如ServiceStack.Core换成ServiceStack,ServiceStack.Text.Core换成ServiceStack.Text),版本统一用v5.1.0就行 - 清理重建,搞定编译问题
替换完所有包后,右键解决方案选择「清理解决方案」,再执行「生成解决方案」,让所有依赖重新加载一遍
要是你实在想在.NET Framework项目里用Core版本的ServiceStack包,那得把项目目标框架升级到.NET Framework 4.7.2及以上(低版本的.NET Framework对.NET Standard的支持有不少坑),但我还是更推荐用对应框架的专用包,稳得多。
给你个替换包后能正常编译的代码示例:
using ServiceStack; class Program { static void Main(string[] args) { using (var client = new JsonServiceClient("https://your-api-endpoint.com")) { // 这里写你的客户端逻辑 } } }
内容的提问来源于stack exchange,提问作者Phoeniceus Agelaius
相关产品推荐
相关产品推荐

