【问题标题】:having to rebuild in VS 2010 after every modification每次修改后都必须在 VS 2010 中重建
【发布时间】:2012-03-05 01:21:17
【问题描述】:

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

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

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

总结:

  • 编译器会忽略自上次构建以来所做的更改
  • 编译器会忽略修改文件中的断点
  • 必须执行完全重建才能进行更改并设置断点。

有人对此有什么想法吗?

编辑:似乎将工具>选项>“项目和解决方案”>“构建和运行”>“运行时,项目过期时”更改为“提示构建”确实可以解决问题。虽然每次都被问到很烦人,但它并不那么烦人,而是不得不手动请求重建。需要做进一步的迭代,看看这是否只是表面的。

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

【问题讨论】:

    标签: visual-studio-2010


    【解决方案1】:

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

    【讨论】:

    • 检查了这些选项,两者都处于答案所述的状态。
    • 构建输出看起来像它的构建吗?它是否也设置为保存构建(在该链接中的第一个修复旁边)?
    • 从始终构建切换到提示构建可能已经解决了需要对项目进行进一步迭代以全面测试理论的问题。每次都必须手动重建,或者因为没有进行更改而感到沮丧,这样仍然不会那么烦人。 +1 答案。确认接受时
    • 看来这不是答案。因为它只解决了与 main.cpp 相关的问题,而不是其他文件/类
    • 嗯.. 项目中是否包含其他文件(即解决方案树)?
    【解决方案2】:

    做完之后:

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

    取消选中“仅在 Run 上构建启动项目和依赖项”标志对我来说是个窍门。

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      相关资源
      最近更新 更多