Visual Studio 2010总是认为项目已过时,但没有任何改变

我有一个非常类似的问题,如下所述。

我还将C ++ / CLI和C#项目的混合解决方案从Visual Studio 2008升级到Visual Studio 2010.现在,在Visual Studio 2010中,一个C ++ / CLI项目始终运行过时。

即使它已经被编译并链接到F5之前,消息框“The project is out of date,you want to build it?” 出现。 这非常烦人,因为DLL文件的层次很低,并且几乎迫使解决方案的所有项目都重新构建。

我的pdb设置被设置为默认值(这个问题的建议解决方案)。

是否有可能得到为什么Visual Studio 2010强制重建或认为项目是最新的原因?

任何其他想法为什么Visual Studio 2010的行为如此?


仅适用于Visual Studio / Express 2010。 查看VS2012,VS2013等的其他(更简单)答案

要找到缺失的文件,请使用Enable C ++项目系统日志记录中的信息来启用Visual Studio中的调试日志记录,并让它告诉你什么导致重建:

  • 打开devenv.exe.config文件(位于%ProgramFiles%Microsoft Visual Studio 10.0Common7IDE%ProgramFiles(x86)%Microsoft Visual Studio 10.0Common7IDE )。 对于Express版本,配置文件命名为V*Express.exe.config
  • </configSections>行之后添加以下内容:

    <system.diagnostics>
      <switches>
        <add name="CPS" value="4" />
      </switches>
    </system.diagnostics>
    
  • 重新启动Visual Studio
  • 打开DbgView并确保它捕获调试输出
  • 尝试调试(在Visual Studio中点击F5)
  • 在调试日志中搜索表单的任何行:

    devenv.exe信息:0:项目'Bla Bla Dummy.vcxproj'不是最新的,因为构建输入'Bla Bla SomeFile.h'丢失。

    (我只是按Ctrl + F并搜索not up to date )这些将成为引起项目永久“过期”的参考。

  • 要更正此问题,请从项目中删除对缺失文件的引用,或者更新引用以指示其实际位置。

    注意:如果使用2012或更高版本,则片段应该是:

    <system.diagnostics>
      <switches>
       <add name="CPS" value="Verbose" />
      </switches>
    </system.diagnostics>
    

    在Visual Studio 2012中,我能够比接受的解决方案更容易地实现相同的结果。

    我在菜单工具→选项→项目和解决方案→构建和运行→* MSBuild项目构建输出冗长度“中将选项从最小值更改为诊断。

    然后在构建输出中,我通过搜索“不是最新的”来找到相同的行:

    项目'blabla'不是最新的。 项目项目'c: foo bar.xml'具有'复制到输出目录'属性设置为'始终复制'。


    今天发生在我身上。 我能够找出原因:该项目包含一个头文件,该文件在磁盘上不再存在。

    从项目中删除文件解决了问题。

    链接地址: http://www.djcxy.com/p/44159.html

    上一篇: Visual Studio 2010 always thinks project is out of date, but nothing has changed

    下一篇: NUnit isn't running Visual Studio 2010 code