为什么Visual Studio将应用程序编译为可执行文件(如果它是MAIL格式的?它应该不像java那样将代码编译成.class文件吗?
答案 0 :(得分:8)
.NET“可执行文件”实际上是一个很小的_un_managed存根可执行文件,可以创建一个AppDomain,实例化你的启动.NET对象并调用它。
.NET dll将等同于java .class
编辑:-----
Jb Evain 在评论中指出.NET dll还包含一个非托管存根。
存根只是跳转到执行实际工作的mscoree.dll
中的相应入口点。 exe的CorExeMain
和dll的CorDllMain
。
答案 1 :(得分:1)
因为.exe对操作系统意味着什么 - Windows不必注册另一个可执行类型来运行。 .EXE文件从“运行”菜单,命令行和shell“正常工作”。
但可能更重要的是,因为人们开始期待.exe文件的行为。我的意思是你已经将.EXE文件用作MS系统上的主要可执行文件格式,这已经有30年了。如果他们将可执行的.net应用程序编译成“.CLR”扩展名,那么并不是每个人都知道该怎么做,这可能会减慢.Net的采用速度,特别是在早期......