首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionide与Code一致地看到在运行dotnet构建时不会发生的错误?

Ionide与Code一致地看到在运行dotnet构建时不会发生的错误?
EN

Stack Overflow用户
提问于 2020-12-06 19:59:27
回答 1查看 319关注 0票数 2

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

在运行dotnet build/dotnet run时,似乎一直存在Ionide报告错误的问题,以及似乎锁定DLL文件的问题,这些问题使我在关闭VS代码之前无法运行dotnet build,有时甚至需要手动终止dotnet进程。

在过去,当出现不一致时重新启动VS代码通常已经解决了问题(仅仅“清除项目缓存”似乎很少做任何事情)。不过,我一直在努力解决一个新项目的一个非常具体的问题:

报告的例外是: System.IO.FileNotFoundException -无法加载文件或程序集'FSharp.Core,Version=5.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f7f11d50a3a‘。系统找不到指定的文件。

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

另一个例子是:

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

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

代码语言:javascript
复制
<PackageReference Include="FSharp.Core" Version="4.7.2" />

我如何检查Ionide运行构建与dotnet build执行方式之间的差异?

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 02:05:39

找到了解决当前项目当前问题的一件事: SDK中的.props文件具有以下内容:

代码语言:javascript
复制
<ItemGroup Condition="'$(DisableImplicitFSharpCoreReference)' != 'true'">
  <PackageReference Include="FSharp.Core" Version="$(FSharpCoreImplicitPackageVersion)" />
</ItemGroup>

增加:

代码语言:javascript
复制
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65172496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档