我们都知道,vs开始调试运行时,如果检测到源文件比生成时的标记来的新,就会提示out of date
常见的原因一般是改动了代码(增量编译可解决)或者迁移了整个工程的位置(重新编译可解决)
比较特殊的情况是,测试时间相关的功能时,改动了系统时间到一个比较靠后的时间之后并保存了代码,使得源文件的时间戳比较靠后,会有这样的问题。这时候rebuild也不能解决问题,需要找到那个时间不正常的源文件,然后把时间改成正常的(重新以正常时间保存一下),或者可以考虑删除掉代码重新取一份。
但最近换过一次电脑以后,我又发现了此问题,rebuild solution也不能解决,且我最近并没有做过修改系统时间之类的操作。
于是问了下伟大的谷歌娘,找到了解决方案。
http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out-of-date-but-nothing-has-changed
翻译成中文,就是
1. 关闭vs
2. 打开vs的目录,比如 D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE (右键点vs图标,熟悉,打开文件位置就是)
3. 找到devenv.exe.config 这个文件,在 </configSections> 这行后面加上
<system.diagnostics> <switches> <add name="CPS" value="Verbose" /> </switches> </system.diagnostics>
4. 来这里 http://technet.microsoft.com/en-us/sysinternals/bb896647 下载 DebugView,并打开
5. 重新打开vs,打开工程,再按一次F5
6. 在DebugView中寻找 not up to date,就会确切提示,究竟是哪个文件出问题了,这样就能针对性的解决问题了。
经过这样的步骤,原来这次是因为工程里的resource目录下的一张无用图片的实体被删除了,但没有在工程中移除导致的。在工程中一并移除掉,问题得到了解决。