在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库

Posted

技术标签:

【中文标题】在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库【英文标题】:Using .NET Core library in .NET 4.5.2 console application 【发布时间】:2017-01-30 13:37:30 【问题描述】:

我有两个项目:一个项目是在 .NET Core 上构建的,另一个是在普通 .NET Framework 4.5.2 上构建的。

我想知道如何在我的 .NET 控制台应用程序中使用我的 .NET Core cass 库。

这是我的 project.json:


  "version": "1.0.0-*",

  "dependencies": 
    "NETStandard.Library": "1.6.0",
    "NLog.Web.AspNetCore": "4.3.0",
    "System.Xml.XmlSerializer": "4.0.11"
  ,

  "frameworks": 
    "netstandard1.6": 
      "imports": "dnxcore50"
    ,
    "net452": 
  

我尝试将该项目作为正常参考。但是在重新构建解决方案后,控制台应用程序仍然没有获得 .NET Core 库作为参考。

【问题讨论】:

使用 Visual Studio 2017 再试一次。 【参考方案1】:

Visual Studio 2017 可以本机执行此操作; Visual Studio 2015 不能(从更新 3 开始)。许多此类工具错误和问题正在通过 .NET Core 工具的稳定版本得到修复和最终确定,预计将在 VS 2017 中使用。

如果您仍在使用 VS 2015,您现在可以使用两种解决方法:

使用 dotnet pack 为类库生成 NuGet 包。由于您在 project.json 中以 net452 为目标,因此它将与 .NET Framework 4.5.2 项目兼容。您可以将其托管在 local feed 上并将其安装在您的控制台应用程序项目中。

手动引用编译库时生成的 DLL。它应该在bin/net452/YourLibrary.dll。这不是一个很好的解决方案,因为它很脆,很容易折断。

【讨论】:

以上是关于在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库的主要内容,如果未能解决你的问题,请参考以下文章

从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2

如何在 Visual Studio 中选择 .NET 4.5.2 作为目标框架

使用 .NET 4.5.2 从 C# 代码更改键盘布局

GRPC CallError:发布 Google pub sub Topic 时出现 InvalidFlags。 .net 4.5.2

如何在 .NET 3.5 中使用 System.IdentityModel.Tokens.Jwt 5.2.1?

将 WPF 从 .NET 4 更新到 4.5.2,DataGridTextColumn Visibility DataContext 引用损坏