首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Reflexil进行的程序集更改不起作用

使用Reflexil进行的程序集更改不起作用
EN

Stack Overflow用户
提问于 2012-05-27 03:20:25
回答 1查看 1.2K关注 0票数 1

我正在尝试用Reflexil更改一个NET4.0应用程序的DLL。该目录如下所示:

代码语言:javascript
复制
Main.exe
SomeOther.exe
Lib1.dll
Lib2.dll
Lib3.dll 
...

现在我正在尝试用Reflector 7.5.3.8 Trail和Refleil1.5修改这些文件中的一些IL代码。例如,我从Main.exe中的Main()方法( main方法,我确信这一点)中删除了所有代码,只留下了一个ret。保存更改后,我仍然看不到任何效果,程序照常启动。

我猜问题在于,在某个地方仍然存在该文件的缓存版本。我该如何解决这个问题?

要更改DLL的IL代码,我必须执行什么操作?

EN

回答 1

Stack Overflow用户

发布于 2012-05-28 13:59:29

经过几个小时的工作,我终于找到了问题所在。

在安装时,程序生成了NativeImages -到目前为止没有什么异常。问题是,

代码语言:javascript
复制
ngen uninstall Lib1.dll

代码语言:javascript
复制
ngen uninstall Main.exe

未卸载本机映像。为什么?我不知道..。我试过了

代码语言:javascript
复制
ngen display Lib1.dll

它说,没有这样的集合。巧合的是,我试图用一个find列出整个Native Image Cache:

代码语言:javascript
复制
ngen display | find "Lib1"

这告诉我,它仍然在那里(为什么?!)。这次我不是通过卸载Lib1.dll来卸载它,而是通过执行以下命令来卸载它

代码语言:javascript
复制
ngen uninstall Lib1  (without dll)

它就像一个护身符,告诉了我问题所在。它没有卸载它,因为本机映像缓存中的其他程序集仍然依赖于它。我必须先卸载所有依赖程序集,然后它会被自动删除。

我希望这能对你有所帮助。我认为区分文件和程序集真的很混乱……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10769092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档