总而言之,说来话长...我开始研究一个解决方案,为该解决方案创建了许多项目(如类库)。然后我最终需要使用第三方SDK,因为我有一个昂贵的许可证。事实证明,第三方软件开发工具包只支持.NET Framework。
因为我的解决方案是基于.NET 5/Core和.NET Framework的SDK,所以我有一个很大的问题。它们不能存在于同一环境中,也不能相互引用。所以,继续咬紧牙关,花几个小时把我所有的项目转换成.NET Framework 4.8,同时唱着没完没了的咒骂之歌……
问题所在
我尝试从.NET5转换为.NET 4.8的第一个类库恰好安装了一个Nuget包。那个Nuget就是Newtonsoft.Json Version="12.0.3" (https://www.nuget.org/packages/Newtonsoft.Json)。
在项目文件中更改框架后,VSCode告诉我找不到Newtonsoft名称空间。这让我觉得我安装的Nuget与.NET Framework4.8不兼容。
发布于 2021-02-26 22:37:45
我遇到的问题是,在将框架从net5.0更改为net48后,无法找到名称空间Newtonsoft。
问题是OmniSharp给出了一个假阳性。我重新启动了VSCode,一旦VSCode加载了正在使用的新框架,这个问题就消失了。
发布于 2021-02-27 03:44:50
.NET支持cross platform targeting,这意味着您可以拥有自己的SDK风格的.NET5项目multi-targets both net5 and net48。将来,如果第三方库以.NET Core为目标,那么您可以简单地更改TargetFrameworks属性。
这里讨论了一个类似的问题,如果有帮助的话https://github.com/dotnet/runtime/discussions/40304。
https://stackoverflow.com/questions/66387556
复制相似问题