Dav*_*vid 492 .net debugging visual-studio
在Visual Studio中进行调试时,有时我会添加一个断点,但它是空心的,VS说"断点当前不会被命中.源代码与原始版本不同." 显然,这使我无法进行调试.
消息到底意味着什么?什么原始版本?如果我刚刚打开解决方案并且没有对代码进行任何更改,那么如何才能有"原始版本"?
小智 261
正如它所说,"源代码与原始版本不同".
右键单击解决方案资源管理器中的项目文件夹,然后选择Clean.构建项目的新版本,断点将再次运行!
Oli*_*ver 122
如果您在Debug构建配置中取消选中DLL项目,则永远不会构建新代码!
转到Build --> Configuration Manager ...(在VS2010中)并检查是否检查了当前构建配置中包含您尝试调试的代码的项目.
Ant*_*yVO 42
对我来说,这是在WebSite项目上工作.清理完这些临时文件夹后,我得到了正确的编译错误:
C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary
ASP.NET FilesC:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
Files当我发现有意移动到子文件夹中的类文件时,我终于解决了这个问题,不知何故再次出现在根文件夹中.在我编辑另一个时,VS正在使用那个.
Cod*_*uth 38
你做过这个吗?
如果您勾选方框并按下"是",即使您的项目未编译,您也将获得最后一次成功构建.这意味着无论何时设置断点,都会出现该错误.
尝试更改此值:
小智 30
去
取消选中要求源文件与原始版本完全匹配
Tor*_*mod 25
注意VS中的"输出"窗口.它将告诉您加载的程序集和时间.您可能会看到正在加载文件夹中某个位置的旧程序集.
例如,如果您有多个程序集并且当前正在尝试中断其中一个支持程序集,则CLR将处理程序集解析,这可能会加载另一个程序集文件而不是您在项目中引用的程序集文件.
小智 24
关闭Visual Studio并重新打开解决方案可以解决问题,即它是IDE本身的一个错误(我正在运行VS2010).
如果运行多个Visual Studio实例,则只需关闭运行解决方案的实例.
Joh*_*ton 19
从Visual Studio 2017 15.3.1到15.3.5开始,出现了解决此问题的新方法.如果您使用的是EditorConfig,则该charset=utf8选项会导致出现这些症状.VS团队重现了这一点并表示他们正在努力.
因此,一个解决方法是charset=utf8在.editorconfig文件中注释掉您的行.
编辑:这应该从VS 15.5开始修复.
Mik*_*ney 10
如果您使用对二进制文件的引用(而不是对项目中的代码的项目引用),并且您引用的已编译二进制文件与计算机上的相应源代码不同步,则通常也会发生这种情况.这可能是因为您从源代码控制中下载了新版本的二进制文件而没有随其附带的新源代码,或者您的计算机上有二个版本的二进制文件并且引用了旧版本等等.如果确实如此问题是,尽可能使用项目引用是一个很好的理由.
对我来说,没有一个项目解决了这个问题.我刚刚在该函数中添加了一行新代码,例如:
int a=0;
Run Code Online (Sandbox Code Playgroud)
通过添加,我想我触发了visual studio将此功能添加到原始版本
有一个几乎难以察觉的设置为我解决了这个问题.如果存在断点未命中的特定源文件,则可以在其中列出
由于某些我不知道的原因,VS 2013决定在那里放置一个源文件,然后,我再也无法在该文件中找到断点.这可能是"源代码与原始版本不同"的罪魁祸首.
小智 5
当调试加载已使用某些 CLR 语言(托管 C++、C# 等)实现的模块的 C++ 项目时,也会发生这种情况。在这种情况下,错误消息确实具有误导性。
解决方案是将公共语言运行时 (CLR) 支持配置属性放入启动项目并重新编译。
我也遇到过这种情况。导致我的问题的条件:
我是通过打开以前的版本(VS 提示询问我是否要在 IIS 调试中指向此实例,我回答“是”),然后打开当前版本(再次用“是”响应 IIS 提示)造成此问题的),然后尝试在以前的版本中进行调试。
为了解决这个问题,我只是关闭并重新打开之前的预期版本,再次将其断言为调试源。
问题是您的调试信息与程序集不同步。解决方案很简单:
应该做的把戏!
(很奇怪的是,在不丢弃.pdb文件的情况下进行重建并不总是可行。我可以看到修改的日期正在更新,但是仍然在链中的某个位置(VS2013调试器,IIS,程序集缓存),未检测到此更改)
如果您的解决方案中有多个项目,请确保将正确的项目设置为StartUp Project. 要将特定项目设置为解决方案的启动项目,请右键单击该项目,选择Set As StartUp Project。
正确设置启动项目后,线程到达了所需的断点。
| 归档时间: |
|
| 查看次数: |
258503 次 |
| 最近记录: |