.NET标准DLL二进制文件是否与.NET Framework兼容?

时间:2018-10-25 03:20:44

标签: c# .net .net-standard

我目前有一个以.NET Framework 4.6.1构建的实用程序库,并被各种.NET Framework应用程序引用。

我现在想创建一个新的.NET Core应用程序,因此我想将实用程序库转换为.NET Standard 2.0,以便两种类型的应用程序都可以使用它。

如果我只是打开该库的源代码,将目标更改为.NET Standard 2.0并重建它(假设它仅使用.NET Standard中提供的API),我是否可以将新程序集替换掉现有的应用程序,并且现有的应用程序仍然可以运行吗?还是需要针对新版本重建应用程序?

与更普遍相关的问题是,与.NET Framework相比,.NET标准DLL生成的元数据有什么区别?它们如何/是否影响程序集解析器?

(为了抢先评论“为什么不试试看,我想知道这是否是受支持的方案,而不仅仅是从技术上讲是否对我有用)

1 个答案:

答案 0 :(得分:13)

.Net Standard 是(但不限于) .Net Framework .Net Core

这样想吧

enter image description here

或者,更标准的宣传图片之一

enter image description here

.Net Framework中有很多东西在.Net Core中没有多大意义。例如Windows专用的东西。

但是,您可以使用The .NET Portability Analyzer解决任何明显的兼容性问题

  

是否要使您的图书馆成为多平台?想看多少工作   必须使您的应用程序与其他.NET兼容   实现和配置文件,包括.NET Core,.NET Standard,UWP,   和Xamarin for iOS,Android和Mac? .NET可移植性分析器   是一个工具,可为您提供有关灵活性的详细报告   您的程序通过分析程序集跨.NET实现。   可移植性分析器作为Visual Studio扩展提供,并且   作为控制台应用。

这是该工具的另一张图片,因为它使我的帖子看起来更详细

enter image description here

回答您的问题

  

如果我只是打开库的源代码,请将目标更改为   .NET Standard 2.0并重建它,我可以将新程序集放入   替换现有的,并且现有的应用程序仍应   工作?还是需要针对新的应用程序重建应用程序   版本?

据我所知需要重建,尝试看看会发生什么,并告诉我们。

有太多的事情可能使它无法正常工作。

  

更普遍的相关问题是,   与.NET相比,为.NET标准DLL生成的元数据   框架一以及它们如何/是否影响程序集解析器?

不能完全确定您的意思,但是在重建时它可以解决相同的问题。

  

(为了抢先评论“为什么不试试看,我想知道   如果这是受支持的方案,不仅在技术上可能   为我工作)

据我所知或可能进行的研究仅不支持更换组件。但是,也许其他人在这里有更多信息。

相关问题