小弟做了个小程序,由于空间太多,启动有点慢,查了下资料,说用ngen.exe编译成本地代码可以提高启动速度。小弟在命令提示符那里试了一下,可以生成成功。 小弟想让程序在安装的时候就运行ngen.exe  可是不知道命令该往哪写,哪个大哥可以提供一下具体步骤啊?  先拜谢了。注: 不要思路,要具体步骤,越详细越好,分不够说话,可以追加。

解决方案 »

  1.   

    利用ngen.exe生成程序集的本机镜像
          用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。
     
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/6t9t5wcf.aspx
      

  3.   

    ngen install ClientApp.exe
    大哥  我想知道这个命令在程序里往哪写,  或者写在命令提示里面里 是不是文件在部署的时候就一块儿打包走了还是怎么回事?
      

  4.   

    命令提示行就是cmd(也就是一些人所说的dos,虽然它和dos只是长得有点像...)
    另外ngen的效果并不是那么好,某些情况下可能降低执行效率(ngen生成的本地码
    是无优化的).所以一般都不用.
      

  5.   

    up  up  up  
      

  6.   

    你是想将一个程序打包,用户在安装时 去执行ngen命令?