为什么.NET Core应用程序需要C#和VB程序集?
问题描述:
我注意到,依赖一个.NET核心应用中,有Microsoft.CSharp
和Microsoft.VisualBasic
,用几乎相同的依赖关系:为什么.NET Core应用程序需要C#和VB程序集?
我想更好地了解:
- 为什么(看起来像)特定于语言的DLL首先是需要的;
- 为什么这两个DLL都是必需的。
答
为什么(看起来像)特定于语言的DLL首先需要;
它们存在以支持语言特定的功能。在C#的情况下,这主要是为dynamic
。在VB的情况下,这主要是针对VB特定的成员,如AscW
或vbCrLf
(也可以从C#使用)以及VB编译器使用的某些类型。
为什么这两个DLL都是必需的。
因为,至少在理论上,包含C#和VB包的Microsoft.NETCore.App
包是语言中立的。尽管在实践中,VB目前不支持.Net Core。而且F#(支持)有它自己的包,默认情况下不包含它。