Visual Studio 2022中F#项目为何查找不存在的FSharp.Core ≥6.0.2版本
根本原因
这是Visual Studio 2022 17.1.0 Preview 1.0版本内置F#工具链的已知缺陷:该预览版内部硬编码绑定的FSharp.Core版本号被错误设置为6.0.2,而这个版本并未正式发布到NuGet公共源,因此VS执行内部构建流程时会强制拉取不存在的版本,触发报错。
由于dotnet build命令调用的是系统全局安装的.NET SDK自带的F#工具链,不受VS预览版内部错误配置的影响,因此命令行构建可以正常完成,修改目标框架为net6.0也无法解决该问题。
解决方法
- 临时适配方案:在解决方案根目录新建
Directory.Build.props文件(如果已存在则直接修改),添加如下配置手动锁定FSharp.Core版本:
<Project> <PropertyGroup> <FSharpCoreVersion>6.0.1</FSharpCoreVersion> </PropertyGroup> </Project>
配置完成后重启Visual Studio重新加载解决方案即可正常构建。
- 官方修复方案:直接将Visual Studio 2022升级到17.1.0 Preview 2.0及以上版本,微软已在后续预览版中修正了该版本号错误问题,升级后无需额外配置即可恢复正常。
- 回退方案:如果不想继续使用预览版,卸载当前预览版回滚到Visual Studio 2022 17.0.x正式版,也可避免该问题。
内容的提问来源于stack exchange,提问作者Ryan Lundy
相关产品推荐
相关产品推荐

