【发布时间】:2018-10-25 03:20:43
【问题描述】:
我目前有一个构建为 .NET Framework 4.6.1 并被各种 .NET Framework 应用程序引用的实用程序库。
我现在想创建一个新的 .NET Core 应用程序,因此我想将实用程序库转换为 .NET Standard 2.0,以便两种类型的应用程序都可以使用它。
如果我只是打开库的源代码,将目标更改为 .NET Standard 2.0 并重新构建它(假设它只使用 .NET Standard 中可用的 API),我是否可以将新程序集放入替换现有的,现有的应用程序是否仍然有效?或者是否需要针对新版本重新构建应用程序?
更普遍的相关问题是,与 .NET Framework 相比,为 .NET Standard DLL 生成的元数据有何不同,它们如何/是否会影响程序集解析器?
(为了抢占评论“为什么不试试看”,我想知道这是否是受支持的场景,而不仅仅是技术上它是否适合我)
【问题讨论】:
-
.NET 程序集的元数据格式在过去 8 年中一直是 v4.0.40319。这不是问题,.netstandard、.netframework 和 .netcore 之间有很大不同的是参考程序集。他们大量使用类型转发将类型从引用程序集映射到运行时程序集。这曾经是可以理解的,但不仅在编译时发生转发,而且在运行时也发生转发。当您只重建一个组件时,很难获得这样的保证。试试吧,不要假设成功。
标签: c# .net .net-standard