none
用.Net reflector断点调试Framework类库源代码时,出现如下错误提示: RRS feed

  • 问题

  • 用.Net reflector断点调试Framework类库源代码时,出现如下错误提示:

    The version of the loaded assembly "System.Web" doesn't match the version that .NET Reflector has cached,so this assembly can't be debugged. This is probably because the platform architecture for the project referencing this assembly has changed.

    Fix this by re-enabling debugging for this assembly,which will update the cached version.

    Cached version:

    "C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    Loaded version:

    "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    这版本不匹配,如何解决?使其Cached version与Loaded version指向同一位置???

    2015年11月22日 7:45

答案

  • .Net reflector断点调试.Net Framework类库源代码时,出现如下错误提示:

    The version of the loaded assembly "System.Web" doesn't match the version that .NET Reflector has cached,so this assembly can't be debugged. This is probably because the platform architecture for the project referencing this assembly has changed.

    Fix this by re-enabling debugging for this assembly,which will update the cached version.

    Cached version:

    "C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    Loaded version:

    "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    F5,在本地代码的断点处停止时,调试/窗口/模块,可以看到System.Web.dll的条目的符号状态显示:: “无法查找或打开PDB文件.”

    解决方法如下:

    VS的解决方案中,右击项目/属性/应用程序/目标框架:选择低版的Framework(我此次选择的是3.0版本), 然后保存设置,再调试即可.

    以下是测试过程:用简单的Button的单击:

    protected void Button1_Click(object sender, EventArgs e)

            {

                Title = "a";

            }

    Title = "a";处设置断点,F5,单击按钮停在这时,双击调用堆栈列表中的 >      System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e) 134     C#” ,鼠标会停在” System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e)”,在该方法的第一行设置断点后,Reflector会自动加载符号,加载完成后,Shift + F5停止调试,然后再按F5重新调试,此时,单击按钮,即可在” System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e)”的断点处停止,测试成功

    (此方法不太稳定,有时好,有时还是解决不了)


    • 已标记为答案 xzzyyx8 2015年11月22日 13:54
    • 已编辑 xzzyyx8 2015年11月22日 13:58 修改
    2015年11月22日 13:52

全部回复

  • .Net reflector断点调试.Net Framework类库源代码时,出现如下错误提示:

    The version of the loaded assembly "System.Web" doesn't match the version that .NET Reflector has cached,so this assembly can't be debugged. This is probably because the platform architecture for the project referencing this assembly has changed.

    Fix this by re-enabling debugging for this assembly,which will update the cached version.

    Cached version:

    "C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    Loaded version:

    "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.000_b03f5f7f11d50a3a\System.Web.dll"

    F5,在本地代码的断点处停止时,调试/窗口/模块,可以看到System.Web.dll的条目的符号状态显示:: “无法查找或打开PDB文件.”

    解决方法如下:

    VS的解决方案中,右击项目/属性/应用程序/目标框架:选择低版的Framework(我此次选择的是3.0版本), 然后保存设置,再调试即可.

    以下是测试过程:用简单的Button的单击:

    protected void Button1_Click(object sender, EventArgs e)

            {

                Title = "a";

            }

    Title = "a";处设置断点,F5,单击按钮停在这时,双击调用堆栈列表中的 >      System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e) 134     C#” ,鼠标会停在” System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e)”,在该方法的第一行设置断点后,Reflector会自动加载符号,加载完成后,Shift + F5停止调试,然后再按F5重新调试,此时,单击按钮,即可在” System.Web.dll!System.Web.UI.WebControls.Button.OnClick(System.EventArgs e)”的断点处停止,测试成功

    (此方法不太稳定,有时好,有时还是解决不了)


    • 已标记为答案 xzzyyx8 2015年11月22日 13:54
    • 已编辑 xzzyyx8 2015年11月22日 13:58 修改
    2015年11月22日 13:52
  •  今天下午再用此方法,却怎么也通不过了,真是奇怪了???

    2015年11月23日 13:51