You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5测试项目启动AppSelfHostBase时出现InplaceStringBuilder加载错误

问题根因

该异常由Microsoft.Extensions.Primitives包的版本冲突导致:

  • ServiceStack 5.x版本基于.NET Core 3.x生态开发,内部依赖3.x版本的Microsoft.Extensions.Primitives,调用了该版本中存在的Microsoft.Extensions.Primitives.InplaceStringBuilder类
  • 你安装的Microsoft.Extensions.Configuration.UserSecrets 5.0.0版本依赖5.0版的Microsoft.Extensions.Primitives,而InplaceStringBuilder类在该版本中已经被官方移除
  • 包依赖解析时优先使用了更高版本的Microsoft.Extensions.Primitives,ServiceStack运行时找不到对应的类就抛出了TypeLoadException

你遇到的Configure()方法断点无法命中,是因为异常在AppHost实例初始化阶段就被抛出,还未执行到Configure()方法的逻辑。

解决方案

可根据你的项目需求选择任意一种方案:

方案1:升级ServiceStack到6.x及以上版本

ServiceStack从6.0版本开始完整适配.NET 5+生态,已经移除了对InplaceStringBuilder的调用,不存在版本冲突问题。修改测试项目的包引用即可:

<PackageReference Include="ServiceStack" Version="6.*" />
<PackageReference Include="ServiceStack.Kestrel" Version="6.*" />

方案2:降级用户机密包到3.1.x版本

如果你的项目必须保留使用ServiceStack 5.x版本,就将Microsoft.Extensions.Configuration.UserSecrets降级到和ServiceStack依赖匹配的3.1.x版本:

<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.32" />

修改完成后,清理解决方案的bin、obj文件夹,重新构建后再运行测试即可恢复正常。

内容的提问来源于stack exchange,提问作者Guerrilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:54:03