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为例。
答案 0 :(得分:0)
增加.NET标准版本不会使BinaryFormatter
可用于基于较旧版本的运行时/标准构建的项目。
如果您无法升级.NET Core 1.1项目,那么您可以通过审查开放源代码库(如lukasz-pyrzyk/BinaryFormatter)或将新功能分离到另一个针对支持{{。 1}}。