【问题标题】:How do I leverage existing C# (.NET 4.5.x) in a .net-core (DotNetCore 1.0) application如何在 .net-core (DotNetCore 1.0) 应用程序中利用现有的 C# (.NET 4.5.x)
【发布时间】:2016-11-15 02:55:54
【问题描述】:

我有一个 netcoreapp1.0 (Microsoft.NETCore.App) 应用程序,它是一个基于 kestrel 的 Web 服务,我想利用我现有的一些 C# DLL (.NET 4.5.x) 我还有一个我正在使用的其他一些 netstandard1.6 (NETStandard.Library) 程序集。
一个大问题:是否可以在不将其全部移植到 DotNetCore 1.0 的情况下引入遗留代码?

分解一下,我想我想知道:

  1. 我的应用程序的正确框架目标是什么?我假设它必须是 netcoreapp1.0 而不是 net451。
  2. 我的应用程序需要哪些导入(例如 dnxcore50、net451)?
  3. 我的 C# 程序集需要添加哪些内容? project.json 是否足够,或者拥有 xproj 是否提供了一些额外的价值?
  4. 我的 C# 程序集的正确框架目标是什么?我假设 NETStandard.Library 1.6.0 是错误的,因为我认为它需要更改代码才能编译。

任何建议和/或指导将不胜感激。谢谢!

【问题讨论】:

  • 查看 here 以获得 fx 兼容性。
  • 您的应用程序是否应该与平台无关,即它是否也应该能够在 linux、mac 上运行?您是否绑定到特定的框架版本?
  • 传奇,谢谢!非常特定于窗口。基本上我想将 ASP.NET Core 与我现有的 Windows C# 代码结合起来。跨平台稍后出现。
  • Legends - 我以前看过兼容性页面,但也许我看错了。我假设图表是说 4.5.1/4.5.2 与 netcoareapp 1.0 和 netstandard 1.2+ 兼容。真的是说4.6.3兼容1.0和1.6吗?我怀疑从 4.5.1 升级到 4.6.3 对我来说是一次微不足道的升级,所以我很快就会尝试一下。
  • 如果您有一个需要 net451+ 的依赖项,您的应用程序需要以 net451+ 为目标。您可以强制在 netcoreapp1.0(这是导入的目的)中获取 net451 依赖项,但它很可能在运行时失败。仅当您知道该软件包可与 netcoreapp 一起使用时,导入才有意义(通常它是为 dnxcore50 提供但未更新或是 PCL)。

标签: asp.net-core .net-core


【解决方案1】:

由于工作的核心都在 cmets...这里是答案的摘要:

如果您接受 net46 不能在 netstandard1.6 下运行,一切都会按预期进行。也就是说,如果我的 DotNetCore 应用程序、DotNetCore 库和 C#.NET 库都以 net46 为目标,它会按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2015-01-10
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多