2017-09-20 104 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