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

.NET 4.6.1 F#应用引用最新FSharp.Core时抛出FileNotFoundException

解决.NET 4.6.1项目引用FSharp.Core 4.3.4时的版本加载异常

碰到这个问题我太熟了!这本质是FSharp.Core版本绑定冲突的典型场景,咱们一步步来搞定:

先搞懂问题根源

你引用的是FSharp.Core 4.3.4,但系统却在找4.4.3.0版本,这说明项目里有其他组件依赖了更高版本的FSharp.Core,或者.NET框架的版本绑定规则导致了版本不匹配——.NET 4.6.1本身对FSharp.Core的兼容版本有特定要求,直接用最新版反而会触发冲突。

解决方案一:添加程序集绑定重定向

这是最常用的解决办法,通过配置告诉系统把对4.4.3.0的请求重定向到你实际安装的4.3.4版本。

打开项目的App.config(或Web.config),在<configuration>节点下添加以下配置:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.4.3.0" newVersion="4.3.4.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

保存后重新编译运行,大部分情况下就能解决版本找不到的问题。

解决方案二:安装与.NET 4.6.1兼容的FSharp.Core版本

如果绑定重定向没起作用,可能是版本跨度太大导致的。.NET 4.6.1对应的推荐FSharp.Core版本是4.4.3.0,你可以直接安装这个版本的NuGet包:
打开NuGet包管理器控制台,执行命令:

Install-Package FSharp.Core -Version 4.4.3.0

这个版本和.NET 4.6.1的兼容性更好,能从根源上避免版本冲突。

解决方案三:检查项目中的其他依赖项

如果上面两种方法都没用,那得排查项目里的其他NuGet包,看看有没有哪个包强制依赖了FSharp.Core 4.4.3.0。可以通过NuGet包管理器的“已安装”列表逐个查看依赖关系,找到冲突的包后,要么升级/降级该包,要么调整FSharp.Core版本来匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:22:58