升级.netstandard 1.6到2.0,但仍适用于.net核心1.1

时间:2017-09-20 13:59:53

标签: .net .net-standard .net-standard-2.0

TL; DR 旧项目(与.netstandard2.0 不兼容)如何仍然使用从.netstandard 1.6升级到.netstandard 2.0的类库提供的现有功能?

假设我创建了一个.net标准1.6类库A,该库由.net核心1.1应用程序和.net核心2.0应用程序使用。

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

然而,需要BinaryFormatter的新要求。由于.net标准1.6不支持它,因此我将类库A升级到.net标准2.0。

但是,正如您所知,.net核心1.1不支持.net标准2.0。那么,如果由于其他原因我无法将.net核心1.1应用程序升级到.net核心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为例。

1 个答案:

答案 0 :(得分:0)

增加.NET标准版本不会使BinaryFormatter可用于基于较旧版本的运行时/标准构建的项目。

如果您无法升级.NET Core 1.1项目,那么您可以通过审查开放源代码库(如lukasz-pyrzyk/BinaryFormatter)或将新功能分离到另一个针对支持{{。 1}}。