2016-08-23 196 views
0

我有一個建立在dotnet框架v4.0上的dotnet庫(dll)。 現在我們要使用該dll在.Net Core framework 1.0將.Net v4.0移植到.Net核心1.0

這是否有可能使用以前版本的dotnet framework(如v4.0)構建的舊庫可以直接在.Net Core 1.0中使用?

如果是,那該怎麼做? 如果不是,那麼需要做什麼才能支持.Net Core 1.0。

我已經通過各種MSDN博客,但能夠找到控制檯應用程序的任何解決方案。他們有很多關於ASP.Net的核心,但在.Net Core App方面較少。

+0

這個問題是要廣泛回答在SO上。請在您的VS 2015中安裝https://visualstudiogallery.msdn.microsoft.com/1177943e-cfb7-4822-a8a6-e56c7905292b,並在4.0庫中運行它,查看哪些應用程序不兼容,並使用.NET更改/刪除/替換它們核心兼容的API調用 – Tseng

+0

@Tseng這確實有幫助。但安裝此擴展後,它不會在目標平臺列表中顯示.Net Core,而是顯示ASP.Net Core。 – User1234

回答

1

它不能直接在.NET中使用核心1.0,但它可能被移植。

你應該做的第一件事就是測試你的DLL在.NET Portability Analyser

這個工具會告訴你(及其相關的類和命名空間和)你用的是什麼方法,未在.NET 1.0的核心支持的一個非常直觀的方式。

根據可行性(這是你的,你知道你的代碼),您可以選擇嘗試擺脫這一類/方法,並取代它們與.NET 1.0的核心代碼兼容。在.NET核心1.0不支持的功能的

實例:

  • 應用程序域(用於代碼隔離,動態組件裝載)
  • 遠程處理
  • 二進制序列

更多細節on Core FX github documentation

要嘗試端口您的DLL:

  • 擺脫的csproj
  • 的一個project.json(正確配置爲面向.NET核心1更換。0)
  • 在Visual Studio中打開該項目2015年
  • 嘗試編譯它
  • 分析錯誤並改正
  • 迭代(可能多次:))

祝你好運!

1

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

有許多API在.NET Core上不可用(至少現在是這樣)。想想例如,註冊表API是沒有意義的跨平臺

您需要手動端口的源代碼,並重建它。

有一個新的類型庫稱爲.NET standard的,所以如果你的端口的源代碼瞄準了這個,你應該能夠在.NET Framework和.NET核心運行