【问题标题】:Getting "The source file is different from when the module was built."获取“源文件与构建模块时不同。”
【发布时间】:2008-12-09 16:40:33
【问题描述】:

我正在尝试调试收到的 ASP.Net Web 项目。我修改了"Apps_LocalResources" 文件夹中的一个类。

当我调试并且代码尝试进入该类时,我得到 ​​p>

“源文件与构建模块时不同。”。

我重新构建了解决方案,但没有得到任何更改。我什至将它发布到不同的位置,bin 文件夹中的 pdb 和 dll 没有改变,所以我没有将它们复制过来。

想法?

【问题讨论】:

    标签: c# .net asp.net compiler-construction


    【解决方案1】:

    如果您要附加到 asp.net 工作进程,则终止该进程,启动网站并重新附加调试器。

    如果您使用的是内置 Web 服务器,请确保停止项目和与之关联的 WebDev.WebServer.Exe。

    如果一切都失败了,请右键单击断点并选择位置。然后启用底部的“允许代码不同...”复选框。

    【讨论】:

      【解决方案2】:

      只需从应用程序根目录中删除 Obj 文件并重建

      【讨论】:

        【解决方案3】:

        删除(4ex)下的文件夹根目录: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root

        然后在 VS2005 中: 工具->选项->调试->常规并取消选中需要源文件以完全匹配原始版本

        这就是我的解决方案。

        【讨论】:

        • 这样做,您只会摆脱警告,而不是调试器将跳过添加的行,因为代码文件与要调试的程序集不匹配。
        【解决方案4】:

        单击解决方案资源管理器中的刷新按钮。这为我解决了这个问题。

        2013 年 7 月 8 日编辑: 还要检查您的项目之间是否没有同一个 dll 的多个版本。如果这样做,请将最新的保存在项目解决方案中,其余的保存在项目范围之外的文件夹中。我确实建议你有一个 Libraries 文件夹来放置所有的 dll,这样你就没有多个文件夹中的 dll。

        【讨论】:

          【解决方案5】:

          对于我的情况,我使用 try catch 依赖项目文件。它抛出异常,因此文件无法更新。当避免异常时,它工作正常。

          【讨论】:

            【解决方案6】:

            假设您正在引用一个 .dll,它是由您正在修改的副项目以及您的主项目构建的。

            如果您的参考设置为 .dll 文件,则该文件是由 Release-配置构建的(.dll 的参考路径类似于 bin\Release\YOURDLL。 dll),检查您是否真的在使用配置管理器中的Release-configuration 构建辅助项目。

            此外,请确保您的项目依赖项和构建顺序设置正确,因此您的主项目所依赖的副项目将在您的主项目构建之前重新构建。

            【讨论】:

              【解决方案7】:

              重新启动 Visual Studio 对我有用。

              【讨论】:

                猜你喜欢
                • 2011-03-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-11-16
                • 1970-01-01
                • 2014-08-03
                • 2015-10-25
                相关资源
                最近更新 更多