【发布时间】: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 的情况下引入遗留代码?
分解一下,我想我想知道:
- 我的应用程序的正确框架目标是什么?我假设它必须是 netcoreapp1.0 而不是 net451。
- 我的应用程序需要哪些导入(例如 dnxcore50、net451)?
- 我的 C# 程序集需要添加哪些内容? project.json 是否足够,或者拥有 xproj 是否提供了一些额外的价值?
- 我的 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)。