天天看点

VS2013每次编译生成后 调试时仍出现“此项目已经过期”提示的解决方案

问题描述:接手项目中,每次修改后右键生成,生成成功后,F5执行,仍旧会弹出提示窗口:此项目已过期,是否重新生成

VS2013每次编译生成后 调试时仍出现“此项目已经过期”提示的解决方案

(引用自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\

VS2013每次编译生成后 调试时仍出现“此项目已经过期”提示的解决方案

        (1) 用一个文本编辑工具打开devenv.exe.config文件。 

   (2) 然后在</configSections>这行的 下 面 添加如下配置(注:如果是VS2010或者之前的版本第三行请使用<add name="CPS" value="4" />)

<system.diagnostics>
    <switches>
        <add name="CPS" value="Verbose" />
    </switches>
</system.diagnostics>
           
VS2013每次编译生成后 调试时仍出现“此项目已经过期”提示的解决方案

   (3) 重启下VS。 

   (4) 打开DbgView[下载地址https://docs.microsoft.com/zh-cn/sysinternals/downloads/debugview],注意把Capture菜单里面的Capture Win32和Capture Events勾选上。

VS2013每次编译生成后 调试时仍出现“此项目已经过期”提示的解决方案

   (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

  [2]VS2010每次调试都出现“此项目已经过期”提示

继续阅读