2017-09-20 153 views
1

TL仍能正常工作; DR 怎麼能老項目(與.netstandard2.0不兼容)仍然使用由類提供的現有功能庫從.net標準1.6升級到.net標準2.0?升級.netstandard 1.6至2.0,但對於.NET 1.1核心

說我創建了一個.net標準1.6類庫A,並且該庫由.net core 1.1應用程序和.net core 2.0應用程序使用。

+---.net core 1.1 
    +---ClassLibraryA (.netstandard1.6) 
+---.net core 2.0 
    +---ClassLibraryA (.netstandard1.6) 

但是,有一個新的要求需要BinaryFormatter。由於.net標準1.6不支持它,所以我將Class Library A升級到.net標準2.0。

但是,正如您可能知道的,.net標準2.0不支持.net核心1.1。那麼,如果我因爲其他原因無法將.net core 1.1應用程序升級到.net core 2.0,我該如何解決這個問題?

我想出的唯一解決方案是創建另一個項目說B是一個.net標準2.0項目,並將所有代碼複製到此項目。但是,我認爲解決方案很難看。

醜陋的解決方案:

+---.net core 1.1 
    +---ClassLibraryA (.netstandard1.6) 
+---.net core 2.0 
    +---ClassLibraryB (.netstandard2.0) //Copy codes from ClassLibrary1.6 

注意,我只取BinaryFormatter的一個例子。

回答

0

增加.NET標準版本不會使BinaryFormatter可用於構建在較舊版本的運行時/標準上的項目。

如果無法升級.NET 1.1的核心項目,那麼你可能在功能通過審覈的開源庫,例如lukasz-pyrzyk/BinaryFormatter或分離的新功能到另一個項目針對一個版本的.NET的支持BinaryFormatter下降。

+0

感謝Romoku,但是,我只是以BinaryFormatter爲例,我不會在我的解決方案中引入另一個第三方庫。我已經更新了我的問題,以便更具體。 – Charlie