【发布时间】:2012-12-26 22:32:56
【问题描述】:
这周我每天都在寻找有关我在尝试调试 ASP.NET 应用程序时遇到的这个问题的信息。 我已经在 the source file is different from when the module was built 和 Getting “The source file is different from when the module was built.” 寻求帮助,但没有得到任何帮助。
我有一个解决方案,其中包含一个项目,该项目具有对从另一个项目中生成的库的 DLL 引用,该库包含许多不同的项目。
我的网络应用程序使用第一个项目的源代码,因此我将调试器附加到它并在代码中设置断点运行网络应用程序。
在使用该应用程序时,我尝试从引用的 DLL 中单步执行代码,它告诉我“源文件与构建模块时不同。”
我尝试从两个解决方案中删除 bin 和 obj 文件夹并重建 dll,然后在第一个项目中删除并重新添加对 dll 的引用。我不明白为什么当我只是构建它并添加参考时它会告诉我源文件与构建模块时不同。
我认为我忽略了一些简单的事情,但我不知道还有什么可以尝试的。 以前有没有其他人解决过这样的情况?
编辑:我刚刚尝试从实际构建我正在使用的 DLL 的项目中附加源代码,即使它与调试器停止的位置也没有正确对齐我的代码。我似乎无法找到一种方法来查找调试器正在使用的 DLL 的位置,但它肯定不是我正在构建的。
编辑 2: 我设法发现“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET”中有旧 DLL 的副本文件”,但每次我运行该应用程序时,它都会重新创建该文件夹和文件结构,就像以前一样。所以我制作了一个批处理文件,每次编译我的项目时都会运行它,同时将新的 DLL 复制到 DNN bin 文件夹中。
【问题讨论】:
-
有没有可能是这篇文章的副本:stackoverflow.com/questions/353421/… ?
-
@JonPeterson 你有没有注意到我自己链接到了那个问题,并且我已经说过我已经检查了这个问题的解决方案。
-
这个DLL是否包含数据库访问代码?
-
@Flot2011 我相信它可以。我至少创建了与数据库的连接。
-
您是否仔细检查过 IIS 中的虚拟目录确实指向您正在构建代码的位置?例如,您的虚拟目录是否指向 C:\inetpub\wwwroot\myapp,但您的项目现在位于 C:\development\myapp?
标签: c# asp.net visual-studio-2010