2012-03-05 29 views
6

我在Visual Studio 2010中工作,我可以通过编写代码并且IntelliSense甚至可以正常工作,但是当我在修改代码后运行编译器时,更改不要总是拿。这发生在C++ Win32控制台应用程序,C++ Windows应用程序和C++ CLR控制台应用程序中。它甚至发生在C#XNA中。必须在每次修改后在VS 2010中重建

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

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

摘要:

  • 编译器会忽略自去年建立
  • 编译器会忽略在修改过的文件
  • 必须进行全破发点重建有变化所做的更改,以及断点服用。

没有人对此有任何想法。

编辑:似乎更改工具>选项>“项目和解决方案”>“生成并运行”>“运行时,项目已过时”更改为“提示生成”确实解决了问题。尽管恼人的问题每次都不那么讨厌,那么就不得不手动请求重建。需要做进一步的迭代,看看这不仅仅是肤浅的。

edit2:在继续遍历当前项目之后,似乎此更改没有解决问题,但仅适用于主文件,并且任何子文件仍需要完整重建才能进行修改,即使是小文件也不例外。

回答

3

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

+1

检查了这些选项,并且都在答案中声明的状态。 – gardian06 2012-03-05 01:45:12

+1

构建输出看起来像它的建筑?它是否也保存在构建中(在该链接中的第一个修复旁边)? – 2012-03-05 01:52:14

+1

从总是构建切换到提示构建可能已经修复了,它需要进一步迭代项目以充分测试理论。仍然不那么烦人,那么每次都不得不手动重建,或者感到沮丧的是没有进行更改。 +1答案。当确认接受 – gardian06 2012-03-05 01:57:34

0

后做:

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

取消选中标志“仅在Run上创建启动项目和依赖关系”为我制造了诀窍。

相关问题