Visual Studio 2010 - 调试/构建问题

时间:2012-08-14 09:46:18

标签: visual-studio-2010 build-process tfs2012 visual-studio-debugging

我使用的是Visual Studio Professional 2010和Team Foundation Server Express(测试版)。我的VS项目(C#.Net / WPF)已从VS 2008(没有TFS)迁移到VS 2010(使用TFS)。

每当我对我的代码应用更改并尝试调试我的应用程序时,我会收到This breakpoint will not be hit.(德语:Der Haltepunkt wird momentan nicht erreicht. Der Quellcode weist Unterschiede zur Originalversion auf.)等消息,并使用旧的可执行版本启动项目(带有最后一次成功的建设)。没有错误发生,代码没问题,但也没有应用更改。

当我手动清理并重建我的项目时,一切都运行得很好 - 但是必须解决这个问题吗?


编辑:我刚刚在我的VS解决方案中添加了一个新项目,并在TFS服务器上进行了检查。使用这个新项目不会出现问题。即使我添加了上面提到的项目中使用的相同依赖项,新项目的调试和构建也能正常工作,而不会出现上述错误。

也许这些信息可以帮助您找到解决方案。

6 个答案:

答案 0 :(得分:3)

目前尚不清楚现有答案是否不充分。我不知道究竟是什么导致了你的问题;但是,我可以详细介绍一些可能出现的地方。

我经常看到的第一个区域是项目直接引用程序集。您可以创建一个用于创建装配的项目。另一个项目可能使用该程序集,您可以直接通过程序集引用(而不是添加对“项目”的引用)。这使VS无法真正知道它需要首先“构建”引用的程序集,它有时会与调试符号(PDB)不同步。您可以判断项目是否已被引用或者是否在引用的属性中引用了程序集(展开“解决方案资源管理器”中的“引用”,右键单击引用,然后选择“属性”)。引用的项目将没有特定版本属性,而程序集引用将具有。您有时也可以从Project \ Project Dependencies中分辨出来。如果您对另一个项目生成的程序集有引用但该项目不是Project Dependencies中的依赖项,则它可能是程序集引用。要解决此问题,通常只需删除引用并添加对项目的引用。

我还发现有时断点会混淆调试器。如果我有很多断点或者他们一直在踢很长一段时间,调试器有时会做一些奇怪的事情。如果我删除所有现有断点(调试/删除所有断点)并重新应用它们,调试器通常会更快乐。

答案 1 :(得分:2)

您可以找到答案here。程序集可能在GAC或项目中,或者需要重建某些项目以再次生成pdb文件,这些文件用于调试。如果您不选择重建,可能会使用旧的pdb文件。

答案 2 :(得分:2)

我的猜测是你在某个程序无法访问它们的地方放置了破发点。

前:

const int x = 5;

if(this.x == 1)
   //do sth <--- breakpoint here

答案 3 :(得分:2)

如果您正在运行混合模式应用程序(非托管本机C ++和托管C#),请确保在C#应用程序的“属性”窗口中设置Enable unmanaged code debugging

答案 4 :(得分:1)

你必须重建,没有更简单的方法。

需要重新创建程序数据库文件(PDB)。您还应该将配置设置设置为debug。

question的第一个答案也必须有所帮助。

答案 5 :(得分:0)

当我作为管理员启动VS时发生了这种情况,当项目设置为与我在此项目中使用的DLL不同的架构时,它也发生在我身上。