【问题标题】:Referencing .net 4.7 framework assemblies in .net core 2 solution在 .net core 2 解决方案中引用 .net 4.7 框架程序集
【发布时间】:2018-07-16 13:16:22
【问题描述】:

当我尝试在我的 Asp.NetCore 2 MVC 应用程序中引用 .net 4.7 DLL 时遇到问题。错误贴在下面:

PM> Install-Package Microsoft.NETCore.App -Version 2.0.0 恢复 ../Web.csproj 的包...安装包:包 Microsoft.NETCore.App 2.0.0 与 net47 不兼容 (.NETFramework,版本=v4.7)。打包 Microsoft.NETCore.App 2.0.0

支持:

  • netcoreapp (.NETCoreApp,Version=v0.0)
  • netcoreapp2.0 (.NETCoreApp,Version=v2.0)

.Net 4.7 程序集是一个实体框架 6 库,将由 Web 应用程序 (core2 mvc) 使用。我已经更新了我的核心 2 Web 应用程序以针对多个框架 (netcoreapp2.0;net4.7)。

所以我想我想问的是如何在 ASP.Net core2.0 解决方案中使用 .Net4.7 程序集。

【问题讨论】:

  • 您真正想要的是库的网络标准版本;它是什么图书馆?是否存在网络标准版本?
  • 看起来你实际上在做相反的事情,并试图将 netcore 2.0 安装到 net 4.7 项目中;你能很清楚你在这里想要做什么吗?我对那个 install-package 行感到困惑。这里的 Web.csproj 是什么,它的目标是什么?
  • 可以在 .NET Core 2.0 项目中使用 .Net Framework 4.7 库(通过 .NET Standard),但不能反过来,即无法安装针对 .NET Core 2.0 的库在以 .NET Framework 4.7 为目标的项目中。
  • @MarcGravell - 我正在尝试在核心 2 web 项目中使用 .Net 4.7 Framework 程序集(Entityframework 6 项目)。为了实现这一点,我在网络上添加了 net47项目文件。
  • @ChrisPratt,确认 netcore 2.1 项目 (WebApi) 可以针对 netstandard 2.0 项目 (Logic),而后者又使用 .net framework 4.7.1 库 (WCF Class Lib)。

标签: c# .net entity-framework-6 asp.net-core-2.0


【解决方案1】:

K,拼凑:

  • 你有一个 .NET Core Web 项目
  • 您想添加实体框架 6 (EF 6),但它不会添加
  • 所以您将 <TargetFrameworks>net47</TargetFrameworks> 添加到 csproj

添加 <TargetFrameworks>net47</TargetFrameworks> 是一个巨大的变化 - 这意味着它实际上不再是一个 .NET Core 项目。 csproj 通常需要对此类基础性更改进行大量清理,但可能可以使其再次工作,但最终:如果这样做,您将不再拥有 .NET Core 项目。

您最好删除 net47 引用,然后从 EF 6 迁移到 EF Core (Microsoft.EntityFramework.Core) - 它针对 .NET Standard 2.0。这与 EF6 会有一些 API 差异,但几乎可以肯定是更合适的方法。

如果您想要一个 .NET Framework Web 项目,我可能会建议从 .NET Framework 模板开始

【讨论】:

  • 我决定使用 EF Core。非常感谢您的建议。 .Net core 对我来说是一个新的游乐场。
  • EF 现在也针对 .net core 3(通过 .net 标准 2.1)
猜你喜欢
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 2016-10-24
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多