VS2019中的.Net核心控制台模板将Microsoft.NETCore.App元包添加为“SDK”,其中包括对.NetFramework库的依赖。
例如,为什么System.ServiceProcess.dll ( .NetFramework程序集)而不是System.ServiceProcess.ServiceController.dll (等效的.NetCore程序集)被列为依赖项?

要实际使用System.ServiceProcess.dll中包含的类型,需要添加对System.ServiceProcess.ServiceController nuget包的引用。我搞不懂为什么nuget会将.NetFramework程序集作为依赖项列出,尤其是考虑到访问该程序集中包含的类型需要额外的Nuget包
发布于 2019-07-01 05:34:04
这些不是are程序集,而是为使用.NET核心上的现有库或包提供.NET表面兼容性(程序集/类型标识)的编译时引用程序集。其中一些可以跨平台工作(比如代码依赖于在mscorlib.dll中定义的System.Object,在.NET Core2.0中添加System.Object是为了兼容),而另一些则可能不能。SDK只是将所有外观/引用程序集添加到编译中,以帮助在编译期间解析引用。它们实际上并不包含任何代码。甚至在实际的.NET核心运行时中可以找到的一些dll文件也可能只包含类型转发,而不包含实际的实现。
另请参阅Compatibility shim used by .NET Standard 2.0,了解有关兼容性机制的信息。
https://stackoverflow.com/questions/56820918
复制相似问题