dotpeek 显示不同版本的代码

问题描述 投票:0回答:3

我对 dotpeek 产品遇到了最奇怪的事情。

我从本地文件夹打开了旧的 dll 版本,并在 dotpeek 中看到了一些添加到新版本中的代码。 经过大约一天的调查后,反汇编向我展示了旧的代码。

有人可以向我解释如何做到这一点以及将来如何避免这种情况。 我能想到的唯一解释是较新的版本已加载到 GAC(全局程序集缓存)中。

有人遇到过这个问题并知道如何解决吗?

c# resharper dotpeek
3个回答
3
投票

有一个选项“使用调试信息进行导航”。如果设置,dotPeek 将尝试使用 .pdb 文件中的源文件信息,并显示该类的实际源代码,而不是反编译。 dotPeek 可能正在显示源文件,但自上次编译 .dll 以来该文件已发生更改。清除此复选框意味着 dotPeek 将始终反编译。

提出了一个问题 (DOTP-7375),以便为该选项使用更好的措辞,因此 dotPeek 正在做什么是显而易见的。我刚刚提出了另一个问题 (DOTP-7376),以确保 dotPeek 也使用 .pdb 中的校验和验证源文件的校验和,以便它不会显示过时/较新的源文件。


1
投票

确保删除本地源文件。

当本地源文件不存在时,dotpeek将被强制反编译。


0
投票

根据文档:https://www.jetbrains.com/help/decompiler/Opening_Assembly_Files.html

要摆脱 dotPeek 的激进缓存并强制从最新文件刷新,请删除 %LOCALAPPDATA%\JetBrains\Shared Any\DecompilerCache 的内容

© www.soinside.com 2019 - 2024. All rights reserved.