我有一个项目想要使用.net core 2.0,我认为它是netcoreapp2.0。它还使用使用 .net 4.6.1 创建的 nuget 包。我可以控制这个 nuget 包,并且可以根据需要更改其中的某些内容。它确实将 netstandards 2.0 作为 nuget 包导入。
如果我在我的 cproj 文件中包含:
<TargetFramework>netcoreapp2.0</TargetFramework>
我收到这个警告:
使用“.NETFramework,Version = v4.6.1”而不是项目目标框架“.NETCoreApp,Version = v2.0”恢复了包“Terryberry.Roes.Common 2017.9.29-mongo”。该包可能与您的项目不完全兼容。
以及有关 system.net.sockets 从 4.3 降级到 4.1 的错误。 4.6.1 nuget 包有 System.Net.Sockets 4.3 所以我不确定它为什么要降级。
具体错误供参考:
检测到软件包降级:System.Net.Sockets 从 4.3.0 降级到 4.1.0。直接从项目引用包来选择不同的版本。
MyNetCoreProject (>= 2017.2.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 1.1.2) -> Microsoft.Extensions.FileProviders.Physical (>= 1.1.1) -> NETStandard.Library (>= 1.6。 1) -> System.Net.Sockets (>= 4.3.0)
MyNetCoreProject (>= 2017.2.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 1.1.2) -> System.Net.Sockets (>= 4.1.0) MyNetCoreProject
我尝试同时针对这两个目标:
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
这给了我这样的警告:
使用“.NETFramework,Version = v4.6.1”而不是项目目标框架“.NETCoreApp,Version = v2.0”恢复包“My461NugetPackage”。该包可能与您的项目不完全兼容。
这也让我感到困惑,因为现在我添加了 net461,它说它将使用 .NetCoreApp 构建它
降级 System.Net.Sockets 仍然存在错误
然后我决定只尝试 net461。只是为了看看它是否可以编译。确实如此,但我收到运行时错误。
<TargetFramework>net461</TargetFramework>
这给了我:
未处理的异常:System.TypeLoadException:程序集“Microsoft.AspNetCore.Hosting,Version=1.1.2.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”中类型“Microsoft.AspNetCore.Hosting.WebHostBuilder”中的方法“ConfigureAppConfiguration”没有实现。
我尝试做一些研究,但随着 .net core 的发展,有很多旧的/过时的信息。我一直无法弄清楚这一点。任何指导将不胜感激。