本周我每天都在努力寻找有关我在尝试调试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引用。
我的网络应用程序使用第一个项目的源代码,所以我将调试器附加到它并运行在代码中设置断点的Web应用程序。
在使用应用程序时,我尝试从引用的DLL中逐步进入代码,并告诉我“源文件与构建模块的时间不同。”
我尝试从两个解决方案中删除bin和obj文件夹,然后重新删除dll,然后在第一个项目中重新添加对dll的引用。我不明白为什么它会告诉我源文件与构建模块的时间不同,当我 JUST 构建它并添加引用时。
我认为有一些简单的东西我可以忽略,但我不知道还有什么可以尝试。 还有其他人之前修过这样的情况吗?
编辑:我刚刚尝试从实际构建我正在使用的DLL的项目中附加源代码,甚至不能正确排列调试器停止的位置我的代码。我似乎无法找到一种方法来查找调试器正在使用的DLL的位置,但它肯定不是我正在构建的那个。
编辑2:我已经设法发现“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET中有旧DLL的副本文件“我删除了,但每次我运行应用程序时,它都会重新创建该文件夹和文件结构。所以我每次编译项目时都会运行批处理文件,同时将新DLL复制到DNN bin文件夹。
答案 0 :(得分:3)
您使用的是iis还是集成的Web开发服务器?只是在这里猜测,但您的Web服务器可能仍在使用您的dll的旧副本,因此请在重建项目后尝试重新启动它。
我目前无权访问VS,但如果我没记错,当你点击vs中的运行按钮时,输出窗口中包含所有已加载dll的路径。检查那里是否确实加载了正确的模块。
希望这有帮助
编辑:还记得复制pdb文件!由于您正在引用dll,因此bin文件夹中该dll的pdb文件很可能与您刚刚构建的版本不同步。
答案 1 :(得分:0)
我想我弄清楚为什么IIS和VS使用旧版本的DLL。这是因为我在DotNetNuke bin文件夹中仍然有一个旧版本。一旦我实际上将新DLL从构建项目复制到DNN bin,我就能够很好地完成代码。我从没想过要出于某种原因实际检查那里。