3
CLR如何識別應用程序的主要方法以開始執行?
執行.exe文件時,CLR執行的操作順序究竟是什麼?.NET如何知道我的應用程序的主要方法是什麼?
CLR如何識別應用程序的主要方法以開始執行?
執行.exe文件時,CLR執行的操作順序究竟是什麼?.NET如何知道我的應用程序的主要方法是什麼?
這是一個C#標準,入口點被稱爲Main
。編譯爲IL時,它被標記爲.entrypoint
,這是CLR用來識別啓動方法的用途。
(來源:Why is Main method private?)
.NET可執行文件也是一個普通的Win32可執行文件。在正常的Win32入口點,放置一個啓動CLR的小引導代碼。在WinXP之前的操作系統上,可執行文件作爲普通的Win32 exe文件啓動,調用啓動CLR的boostrap代碼。一旦啓動,CLR在IL代碼中查找.entrypoint並在那裏開始執行。在WinXP及更高版本上,操作系統將該文件識別爲CLR可執行文件並直接調用CLR。
我有一個令人驚訝的很難找到一個確切的重複,但也有一些關於'的Main()'方法是在某些方面的問題觸及。 – BoltClock