如果我NGen一个组件,ildasm仍然拆卸它是否正常?
行。我写了一个 HelloWorld 类库,随后的 dll 被命名为 NGenILDasmTest.dll。--> 针对 .Net fw 4。
从 Vs 2010 命令提示符,我做到了
gacutil -i NGenILDasmTest.dll
我可以看到安装在 GAC 中的程序集。我运行了 ildasm 以便查看 IL。到现在为止还挺好。
然后我跑
ngen NGenILDasmTest.dll
(我没有为 ngen 指定任何选项)。这个程序集成功编译。我在文件夹下找到了一个名为 NGenILDasmTest.ni.dll 的文件
C:\Windows\Assembly\NativeImages_v4.0.30319_32\NGenILDasmTest\81d49dd4c7df22fb3df530402b58ffc9
现在,当我像下面那样运行 ildasm
ildasm "C:\Windows\Assembly\NativeImages_v4.0.30319_32\NGenILDasmTest\81d49dd4c7df22fb3df530402b58ffc9\NGenILDasmTest.ni.dll"
我可以看到 Ngen-ed 程序集的内容。这是正常的吗?。
从技术上讲,Ngen 为 IL 生成本机 CPU 指令(显然将其放在 C:\windows\Assembly\NativeImages_V4.#####_32 下 - 在我的情况下)。如果是这种情况,我如何仍然能够使用 ILDasm 将 NGen-ed 程序集视为 IL?
请帮助我理解我在这里缺少的“小东西”。