我最近运行了一个有点大胆的
paket clear-cache
,我的 F# 应用程序开始表现奇怪。我的一些项目引用了旧版本的 FSharp.Core 现在引用了新的 v9.0。
我从来没有关注过它,也许类似的举动之前也碰撞过版本,但它对我来说一直是透明的。现在我不介意 if 这次我在编译时没有遇到这个可怕的 error:
File '.../.nuget/packages/fsharp.core/9.0.100/lib/netstandard2.0/FSharp.Core.optdata' not found alongside FSharp.Core.
到目前为止我尝试过的:
paket.lock
和paket why
。 FSharp.Core >=9.0 不存在于任何依赖链中。paket.dependencies
中将 FSharp.Core 显式设置为旧版本并运行 paket install
和 restore
。还是不行,我的项目一直引用9.0。 <-- This is the most surprising to me, as I always thought Paket tried to enforce the versions or failed.Lowest
。no successful import of /.../.nuget/packages/fsharp.core/9.0.100/lib/netstandard2.0/FSharp.Core.dllstartup
- 可能是因为 Fable 做了一个 dotnet restore
恢复了 9.0 作为依赖项。注意:所有构建尝试都是在我的 IDE (Rider) 中和使用
dotnet build
。
我现在最好的选择是非 Paket 托管库对 FSharp.Core 具有依赖关系,并且 DependencyVersion Lowest 不知何故不起作用,导致使用新发布的 FSharp.Core 版本,但我最近没有添加引用我尝试将所有东西保存在 Paket 中,因此欢迎任何帮助。
好的,我通过清理项目中的所有 bin 和 obj 目录并在 paket.dependency 中引用严格版本的 FSharp.Core 解决了这个问题。仍然很奇怪,FSharp.Core 9 首先被引用......