将基于.Net v4.0构建的Dll迁移到.Net Core 1.0

时间:2016-08-23 07:16:52

标签: .net asp.net-core coreclr

我有一个基于dotnet framework v4.0构建的dotnet库(dll)。 现在我们想在.Net Core framework 1.0中使用该dll。

使用以前版本的dotnet框架(如v4.0)构建的旧库是否可以直接在.Net Core 1.0中使用?

如果是,那该怎么办? 如果不是,那么为了支持.Net Core 1.0需要做些什么。

我已经浏览了各种msdn博客,但能够找到任何控制台应用程序的解决方案。他们对ASP.Net核心有很多了解,但对.Net Core App的考虑较少。

2 个答案:

答案 0 :(得分:1)

不,无法在.NET Core上直接使用.NET Framework程序集。

.NET Core上没有很多API(至少目前为止)。举例来说,Registry API对跨平台

没有意义

您需要手动移植源代码并重建它。

有一种名为.NET standard的新型库,因此如果您将源代码移植到此目标,则应该能够在.NET Framework和.NET核心上运行它

答案 1 :(得分:1)

它不能直接在.NET Core 1.0中使用,但可以移植它。

您应该做的第一件事是在.NET Portability Analyser中测试您的DLL。

此工具将以非常直观的方式告诉您正在使用的.NET Core 1.0中不支持的方法(及其关联的类和命名空间)。

根据可行性(取决于您,您知道您的代码),您可以选择尝试删除此类/方法,并将其替换为.NET Core 1.0兼容代码。

.NET Core 1.0中不支持的功能示例:

  • AppDomains(用于代码隔离,动态程序集加载)
  • 远程处理
  • 二进制序列化

有关Core FX github documentation

的更多详情

尝试移植您的dll:

  • 摆脱csproj
  • 将其替换为project.json(正确配置为以.NET Core 1.0为目标)
  • 在visual studio 2015中打开项目
  • 尝试编译它
  • 分析错误并纠正错误
  • 迭代(可能很多次:))
祝你好运!