用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码
生活随笔
收集整理的這篇文章主要介紹了
用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用C#編寫的代碼經C#編譯器后,并非生成本地代碼而是生成托管代碼。也就是說,程序集在打包時是連同CLR一起打包的。在客戶端的機器上,CLR一行行的讀取IL,在讀取每行IL時,CLR利用JIT編譯器將IL編譯成本地的CPU指令。若要節省這段JIT編譯器進行編譯的時間,可以利用ngen.exe生成程序集的本機鏡像,生成的本機鏡像保存在全局程序集(GAC)的一塊保留區域內。
?????? 下面舉個例子,進行簡單說明。打開VS2005,新建一個windows應用程序,命名為AP。在添加兩個類庫項目,分別命名為A和B,且進行強命名。
?????? 在命令提示行內打入如下,命令就可以創建本機鏡像:
?????? ngen AP.exe
?????? "A, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5",
?????? "B, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5"
?????? 之后,打開“控制面板”—“管理工具”—“microsoft .net framework 2.0 配置”在程序集緩存的節點下就可以看到AP.EXE,A.DLL,B.DLL三個程序集,其類型顯示也不再是MSIL而是X86。
總結
以上是生活随笔為你收集整理的用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]使用.net 2003中的nge
- 下一篇: c# char unsigned_dll