我在Visual Studio 2008中有一个带有Web服务和几个Web表单的Web应用程序。当我尝试调试时,我的断点都不可用;如果我将鼠标移到他们身上,我会看到:
“断点不会被击中。源代码与原始版本不同。”
加载的调试模块列表包括我的程序集的旧版本1.0。*。我已经将其更改为1.1.0.0但该版本永远不会被加载。我尝试停止IIS并从Temporary ASP.NET Files中删除文件,但是当我重新启动它时,1.0。*版本就会回来!构建输出肯定是1.1.0.0而不是1.0。*,那么它可能来自何处?当我使用VS Development Server而不是IIS时,会发生同样的事情。
由于
答案 0 :(得分:3)
我已经看到当DLL缓存在Temporary ASP.NET Files文件夹中时会发生这种情况。尝试执行“全部重建”,如果仍在进行,请从临时文件夹中删除DLL,或者完全清除文件夹内容。
答案 1 :(得分:0)
我有一个非常类似的问题:
问题是,您可以用于diag程序集加载问题的大多数工具(Process Explorer用于加载的程序集和路径列表,fuslogvw用于程序集绑定日志)根本不显示附属程序集。
但最后我发现在我的网络应用程序bin文件夹中有旧版本的附属程序集(仍然不知道它是如何到达那里的)并且它在组装探测\加载期间获得优先权。 ..
答案 2 :(得分:0)
当文件LastWriteTime没有更新时,似乎触发了此操作。通过采用完全相同的LastWriteTime的两个完全独立的dll构建,并将它们一个接一个地部署到IIS中,我可以可靠地重现此代码。然后,如果我使用GNU touch更新文件LastWriteTime,则IIS会选择当前正确的版本。