为什么 Visual Studio 将应用程序编译为 MSIL 格式的可执行文件?不应该像java那样把代码编译成.class文件吗?
问问题
370 次
2 回答
8
.NET“可执行文件”实际上是一个很小的 _un_managed 存根可执行文件,它创建一个 AppDomain,实例化您的启动 .NET 对象并调用它。
.NET dll 相当于 java .class
编辑: - - -
Jb Evain在评论中指出 .NET dll 还包含一个非托管存根。mscoree.dll
存根只是跳转到执行实际工作的适当入口点。CorExeMain
对于 exe 和CorDllMain
dll 的。
于 2010-01-26T00:12:43.663 回答
1
因为 .exe 对操作系统意味着什么 - Windows 不必注册另一个可执行类型来运行。.EXE 文件从“运行”菜单、命令行和外壳“正常工作”。
但可能更重要的是,因为人们已经开始期待 .exe 文件的行为。我的意思是,在 30 年的大部分时间里,您一直使用 .EXE 文件作为 MS 系统上的主要可执行文件格式。如果他们将可执行的 .net 应用程序编译为“.CLR”扩展名,那么并不是每个人都知道该怎么做,这可能会减慢 .Net 的采用速度,尤其是在早期......
于 2010-01-26T00:17:21.087 回答