转自:https://blog.csdn.net/dx349670687/article/details/79219029
问题描述:接手项目中,每次修改后右键生成,生成成功后,F5执行,仍旧会弹出提示窗口:此项目已过期,是否重新生成
(引用自magictong)
在确认不存在需要重新生成的修改后,查找了很多解决方案,发现这类问题在VS2010下的提问&解决方法很多(哈哈,是不是侧面说明了C11普及速度之慢?)
参考 magictong 博主的解决方法【VS2010每次调试都出现“此项目已经过期”提示】后,
发现了问题症结所在
但magictong使用的是VS2010下的解决方法,故而这边对于VS2012后的解决方法进行说明。
解决方案
1、一种显而易见的方案就是找到这个不存在的文件,直接从工程的文件列表里面删除即可,如果工程小,倒是可以这么干,如果工程很大,那就是体力活了。(引自magictong)
2、还有一个方法是开发一个工具,解析下VS2010的vcxproj工程文件,这是个XML文件,解析并不困难,把里面的文件都校验一下,把不存在的文件直接找出来。 (引自magictong)
3、还是一个方法是通过DbgView工具[点我下载]来输出不存在的文件(此方法需要了解VS的devenv的配置的含义,以及一些脚本的配置方法,我不懂,因此依葫芦画瓢尝试了下,发现很简单!)
这种方法需要改下VS2013的IDE的配置文件:devenv.exe.config
这个文件的位置:
%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\
或者
%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\
(1) 用一个文本编辑工具打开devenv.exe.config文件。
(2) 然后在这行的 下 面 添加如下配置(注:如果是VS2010或者之前的版本第三行请使用)
(3) 重启下VS。
(4) 打开DbgView[下载地址https://docs.microsoft.com/zh-cn/sysinternals/downloads/debugview],注意把Capture菜单里面的Capture Win32和Capture Events勾选上。
(5) 在VS里面F5开始调试,等"此项目已经过期"的框弹出来之后,去DbgView的输出里面找类似下面的输出(如果内容很多可以直接查找is missing或者not up to date这些关键字)。直接就定位到不存在的文件了。
(6) 通过这个方法可以把所有不存在的文件都找到并在VS资源管理器中找到并移除,全部移除后发现问题解决!
参考自:
[1]VS2010 always thinks project is out of date but nothing has changed
作者:Enigma-V
来源:CSDN
原文:https://blog.csdn.net/dx349670687/article/details/79219029
版权声明:本文为博主原创文章,转载请附上博文链接!