每次修改后都必须在VS 2010中重建

时间:2012-03-05 01:21:18

标签: visual-studio-2010

我在Visual Studio 2010中工作,我可以通过编写代码,并且IntelliSense甚至运行良好,但是当我在修改代码后运行编译器时,更改并不总是如此。这发生在c ++ Win32控制台应用程序,c ++ Windows应用程序和c ++ CLR控制台应用程序中。它甚至也发生在C#XNA中。

我的意思是我将开始编写一个新程序,然后编写代码然后去构建以检查错误,然后运行程序,它将正常工作(如果没有错误)。但是如果我想迭代代码来添加我实现的功能(其中一些应该极大地改变输出),就好像它是在第一次构建时。另外,如果我插入断点,它们并不总是像它们被忽略一样(除了未触及的文件中的那些)。虽然当我在这些时间进行构建时,编译器会正确地抛出错误(有目的地插入并且意外地插入),并且只有在那些点才会进行所有更改。

我发现的唯一解决方法是在每次修改后进行完全重建,但这不应该是必要的,因为我没有添加标头或更改编译顺序。有时它会忽略在cout中修改单个字符的修改。

摘要:

  • 编译器忽略自上次构建以来所做的更改
  • 编译器忽略已修改文件中的断点
  • 必须执行完全重建以进行更改,并且断点需要。

有没有人对此有任何想法。

编辑:似乎更改工具>选项> “项目和解决方案”> “构建并运行”> “在运行时,当项目过时”到“提示构建”确实解决了问题。虽然每次不那么恼人,然后不得不手动请求重建,这很烦人。需要做进一步的迭代,看看这不仅仅是肤浅的。

edit2:在继续迭代当前项目后,似乎此更改不能解决问题,但仅针对主文件,并且任何子文件仍需要完全重建才能进行修改,即使是小文件。

2 个答案:

答案 0 :(得分:3)

如果它发生在所有项目上,可能是第一个修复提到in this answer

答案 1 :(得分:0)

完成后:

工具>>选项>>项目和解决方案>>构建并运行>>检查“运行时,项目是否已过期”设置为“始终构建”或“提示构建” 构建>>配置管理器>>检查是否为要为每个需要使用的配置构建的所有项目选中“Build”。

取消选中标志“只在构建启动项目和依赖于运行”为我提供了诀窍。