Ionide VS Code 始终看到运行 dotnet 构建时未发生的错误?



我在Windows上使用。NET核心3.1/5。

我似乎一直存在Ionide报告错误的问题,这些错误在运行dotnet build/dotnet run时不会发生,而且似乎锁定了DLL文件,使我无法运行dotnet build,直到关闭VS Code,有时甚至需要手动终止dotnet进程。

在过去,当出现不一致时重新启动VS代码通常可以解决问题(单独"清除项目缓存"似乎很少有任何作用(。不过,我一直在为一个新项目的一个非常具体的问题而挣扎:

报告的异常为:系统。IO.FileNotFoundException-无法加载文件或程序集"FSharp"。Core,版本=5.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a'。系统找不到指定的文件。

由于我尝试了一些包版本和框架目标的组合(netstandard2.0、netcoreapp3.1、net5(,确切的消息各不相同,但最终在构建/运行时完美工作的项目定义/DLL似乎因Ionide的各种原因而失败。

另一个例子:

检测到包降级:FSharp。取芯4.7.2至4.7.1。直接从项目中引用包以选择不同的版本。

即使每个.fsproj文件都包括以下内容:

<PackageReference Include="FSharp.Core" Version="4.7.2" />

我可以检查哪些内容来查找Ionide运行构建的方式与dotnet build执行方式之间的差异?

发现一件事似乎可以解决当前项目的即时问题:SDK中的.props文件具有以下内容:

<ItemGroup Condition="'$(DisableImplicitFSharpCoreReference)' != 'true'">
<PackageReference Include="FSharp.Core" Version="$(FSharpCoreImplicitPackageVersion)" />
</ItemGroup>

添加:

<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>

在我的.fsproj文件中,现在似乎所有内容都引用了相同的版本,而不是之前5.0.0(未引用时(和4.7.1/4.7.2(仅引用4.7.2时(之间的不一致。

最新更新