.NET和输出文件扩展名

时间:2010-01-26 00:08:35

标签: cil

为什么Visual Studio将应用程序编译为可执行文件(如果它是MAIL格式的?它应该不像java那样将代码编译成.class文件吗?

2 个答案:

答案 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的采用速度,特别是在早期......