TickBlaze引用MathNet.Numerics遇System.Runtime版本兼容问题求助
问题分析与解决方案
根源
你使用的MathNet.Numerics 5.0.0.0是针对.NET Standard 2.1或.NET 6+构建的,而TickBlaze基于传统.NET Framework(你引用的v4.0.30319对应.NET Framework 4.x),两者依赖的System.Runtime属于不同.NET体系,版本完全不兼容:
- 你手动添加的是.NET Framework自带的
System.Runtime,但MathNet需要的是.NET Core/.NET 6+体系下的System.Runtime 6.0.0.0,这两个程序集不能混用。
解决步骤
- 降级MathNet.Numerics版本:选择兼容.NET Framework的版本,比如4.15.0(该版本完全支持.NET Framework 4.6及以上,无需额外依赖高版本
System.Runtime)。- 若用NuGet安装,执行命令:
Install-Package MathNet.Numerics -Version 4.15.0 - 若手动引用,下载对应版本的NuGet包,解压后引用其中.NET Framework目录下的
MathNet.Numerics.dll。
- 若用NuGet安装,执行命令:
- 移除错误引用:删除之前添加的
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.dll,这个文件会导致版本冲突。 - 验证使用:降级后直接使用
Matrix<double>等线性代数类型即可,MathNet 4.x的依赖都是.NET Framework自带的程序集,无需额外添加。
补充提示
TickBlaze对.NET Framework兼容性更好,尽量避免使用针对.NET Core/.NET 5+的类库版本,否则极易出现跨体系的依赖冲突。
内容的提问来源于stack exchange,提问作者Theron
相关产品推荐
相关产品推荐

