F# - 数据包清除缓存后不需要的对 FSharp.Core 9.0 的引用导致构建错误

问题描述 投票:0回答:1

我最近运行了一个有点大胆的

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.

到目前为止我尝试过的:

  • 从我的全局 NuGet 文件夹中删除 FSharp.Core v9.0 不起作用 - 同样的丢失文件错误消息。
  • 将 paket 下载的 9.0 nuget 包替换为直接来自 nuget.org 源的包。仍然是丢失文件错误。
  • 已检查
    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.
  • 在我的 NuGet.config 文件中将 DependencyVersion 设置为
    Lowest
  • 在我的 fsproj 文件中明确引用了旧版本的 FSharp.Core。它可以编译,但是当我运行其中一个(基于 Fable 的)项目时,我得到了
    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 中,因此欢迎任何帮助。

.net f# nuget fable-f# paket
1个回答
0
投票

好的,我通过清理项目中的所有 bin 和 obj 目录并在 paket.dependency 中引用严格版本的 FSharp.Core 解决了这个问题。仍然很奇怪,FSharp.Core 9 首先被引用......

© www.soinside.com 2019 - 2024. All rights reserved.