C# 为什么在进行更改后,我总是必须清理解决方案才能命中断点?

C# 为什么在进行更改后,我总是必须清理解决方案才能命中断点?,c#,visual-studio-2013,C#,Visual Studio 2013,我有一个问题,我必须总是清理,然后在我做出更改后构建我的解决方案,以便命中断点 它只发生在某个项目中,据我所知,我的其他项目都有相同的设置。我正在使用Vs13并用c#编码 我收到一个错误,说页面与源代码不同,无法调试 我说只要点击F5就可以构建我的更改并进行调试,这是不是不正确 我已经寻找了一段时间的解决方案,任何帮助都会很棒:)。这是因为必须构建源代码以反映您的新更改。调试器无法将生成的代码与源代码匹配可能,您需要重新生成解决方案,而不仅仅是生成已更改的单个项目。当我更改的项目的程序集被其他项

我有一个问题,我必须总是清理,然后在我做出更改后构建我的解决方案,以便命中断点

它只发生在某个项目中,据我所知,我的其他项目都有相同的设置。我正在使用Vs13并用c#编码

我收到一个错误,说页面与源代码不同,无法调试

我说只要点击F5就可以构建我的更改并进行调试,这是不是不正确


我已经寻找了一段时间的解决方案,任何帮助都会很棒:)。

这是因为必须构建源代码以反映您的新更改。调试器无法将生成的代码与源代码匹配可能,您需要重新生成解决方案,而不仅仅是生成已更改的单个项目。当我更改的项目的程序集被其他项目引用,并且修改的项目的程序集未被复制时,我通常会遇到这种情况(在我的情况下,只有在解决方案重建成功时,才会复制所有已编译的程序集)。此外,有时我只是意外地构建了启动项目,而不一定是我更改的项目


理解构建和重建之间的区别很重要。Build将只编译自上次更改以来已更改的文件。建设项目比重建要快。“重建”将清除所有文件并从头开始重建所有项目,无论它们是否更改。

我理解这一点,但构建不应该这样做吗?为什么我要建造和清洁?在其他项目中,我不必这样做。检查生成输出,看看是否所有项目都已生成,而不仅仅是启动项目。您确定所做更改的项目是启动项目还是在启动项目中直接引用?在16个项目中点击F5时,只有3个项目正在生成(一个项目是启动项目,一个是更改所在的位置)。我在一个不是我启动项目的项目中进行更改是否重要?如何检查其是否直接引用?如果您在非启动项目中进行更改,这一点很重要,因为如果项目未直接引用,并且VS不知道启动项目依赖于它,则当您按
F5
时,它可能无法生成它。检查项目菜单中的
项目依赖项
对话框,从下拉列表中选择启动项目,查看更改的项目是否列为依赖项。如果没有,则必须将其标记为一,以便在开始调试启动项目时强制生成。相关项目已被勾选:(在
F5
(开始调试)生成之前执行
CTRL+SHIFT+B
(生成解决方案)(仅限)更改的项目及其依赖项?更改后直接生成然后运行会导致相同的情况(没有断点代码不同),但是如果我进行更改然后生成然后运行然后生成然后运行,则不会出现错误。:SI应注意,第二个生成输出通常表示0个更改的项目。