用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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值