从.Net标准项目中获取.Net核心库

时间:2017-10-17 11:10:44

标签: wpf asp.net-core entity-framework-6

我有一个在.Net framework 4中开发的标准WPF应用程序。现在,我的客户想要一个我计划使用.Net Core开发的网站。为了共享业务逻辑,我需要将数据库沿着业务层移动到一个单独的项目,在这里我打算使用.Net Core。因此,所有层,即Data / Business / API将使用最新版本的.Net Core重新编写。

我是否可以从WPF(.Net Framework 4)项目引用.Net Core中编写的业务层?

任何指针都将受到高度赞赏.....

2 个答案:

答案 0 :(得分:2)

  

我是否可以从WPF(.Net Framework 4)项目引用.Net Core中编写的业务层?

答案是。您可以尝试:在Visual Studio中创建WPF应用程序项目和.NET标准库项目,然后将应用程序项目中的引用添加到库项目中。

您将无法在.NET Standard项目中引用NuGet包,因为它们仅支持完整的.NET Framework,但是大多数流行的NuGet包都可以从.NET Standard项目中引用。您的问题也标记为[entity-framework-6]。如果要从.NET Standard项目中使用Entity Framework,则必须使用Entity Framework Core,因为Entity Framework 6需要完整的框架。

您应该创建一个快速峰值,以确定您是否可以按照自己的意愿构建应用程序。

答案 1 :(得分:2)

您应该在.NET 标准库中实现通用功能。然后,您将能够从与您的公共项目所针对的.NET标准版本兼容的所有应用程序中引用此程序集。

各种.NET实现针对特定版本的.NET Standard,MSDN上的下表列出了所有版本的.NET Standard和支持的平台:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

最新版本的.NET Core(编写本文时目前为2.0)实现了.NET Standard 2.0。实现.NET Standard 2.0的最旧版本的.NET Framework是4.6.1。这意味着您的WPF应用程序应以4.6.1为目标,以便能够使用.NET Standard 2.0程序集。

.NET Core 1.0和.NET Framework 4.5支持.NET Standard 1.0。

.NET Framework 4.0不支持任何版本的.NET Standard,因此您应该针对(至少).NET Framework 4.5重新定位WPF应用程序。