Visual Studio 2010 - 调试/构建问题

问题描述 投票:0回答:6

我正在使用 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 服务器上。使用这个新项目就不会出现这个问题。即使当我添加在上述项目中使用的相同依赖项时,新项目的调试和构建也可以正常工作,不会出现上述错误。

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

visual-studio-2010 build-process visual-studio-debugging
6个回答
3
投票

尚不清楚现有答案是否不够。我无法确切知道是什么导致了您的问题;但是,我可以详细说明一些可能出现这种情况的地方。

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

我还发现有时断点会让调试器感到困惑。如果我有很多断点或者它们已经运行了很长时间,调试器有时会做一些奇怪的事情。如果我删除所有现有的断点(调试/删除所有断点)并重新应用它们,调试器通常会更高兴。


2
投票

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


2
投票

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

Enable unmanaged code debugging


2
投票

我的猜测是,您将断点放置在程序无法访问的地方。

例如:

const int x = 5;

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

1
投票

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

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

这个问题的第一个答案也一定有帮助。


0
投票

当我以管理员身份启动 VS 时,这种情况发生在我身上,当项目设置为与我在该项目中使用的 DLL 不同的体系结构时,这种情况也发生在我身上。

© www.soinside.com 2019 - 2024. All rights reserved.