2012-05-26 85 views
1

我想用Reflexil更改Net 4.0应用程序的DLL。目录如下:Reflexil的装配变更没有影响

Main.exe 
SomeOther.exe 
Lib1.dll 
Lib2.dll 
Lib3.dll 
... 

现在我想改变一些IL代码中的任何文件与反射器7.5.3.8径及Reflexil 1.5。例如,我从Main.exe中的Main()方法中删除所有代码(主要方法,我确信这一点)只留下一个ret。保存更改后,我仍然没有看到任何效果,程序像平常一样开始。

我想问题是,该文件仍然存在某个缓存版本。我如何解决这个问题?

我需要做些什么来改变DLL的IL代码?

回答

2

经过多小时的工作,我终于找到了问题。

安装时,程序生成NativeImages - 目前为止没有任何异常。问题是,这

ngen uninstall Lib1.dll 

ngen uninstall Main.exe 

没有卸载机映像。为什么?我不知道...我试过

ngen display Lib1.dll 

它说,没有这样的组装。巧合的是,我试图用查找列表全机映像缓存:

ngen display | find "Lib1" 

这表明我,它仍然在那里(为什么?)。这一次我试图通过卸载Lib1.dll卸载它,但通过执行

ngen uninstall Lib1 (without dll) 

它像一个魅力和告诉我的问题。它没有卸载它,因为本地映像缓存中的其他程序集仍然依赖它。我必须先卸载所有依赖程序集,然后它会自动删除。

我希望这有些帮助。我认为区分文件和程序集通常会造成混淆......