VS2010每次调试都出现“此项目已经过期”提示
问题描述
最近因为项目需要,开发平台从VS2005切换成了VS2010,把一些老项目也转换到VS2010平台,因为是从低到高升级,微软还是做了很多兼容,基本上可以无缝切换,编译调试也基本正常,但是发现有些项目(尤其是比较大的项目),刚刚编译完毕,马上F5启动调试,发现VS2010会弹出下面的框,开始以为是自己手误,不小心改动了某个源文件导致,后来发现每次调试都提示,把”不再显示此对话框”勾上是不是就可以了呢?框是不弹了,但是实际上还是每次重新编译。
问题追踪
1、首先,我开始以为是我安装的VS2010有什么问题,但是随便新建的VS2010的工程正常得狠,从来没有出现过这个问题。
2、另外,从这个提示这个来看,它是说对比上一次编译来说,本地的源文件过期了(就是有改动过了),如果真的改动过了,那么这个提示是正确的,确实需要重新编译,但是,经过多次观察”输出窗口”的输出,每次重新编译,并没有发现有什么文件被重新编译,VS2010这是在忽悠人?!
3、怒了,从一个有问题的小工程入手,一个个的排查里面的源文件,发现里面一个.h头文件实际上本地没有了,但是还留在工程的编译文件列表里面,而且该头文件没有任何文件引用它了,因此编译不会出错,把这个不存在的文件从文件列表删除了之后,这个小工程的该问题竟然就解决了。
4、后来想想,估计是VS2010画蛇添足,编译过程如果发现不存在的文件,本应该警告提示该文件不存在了,但是可能逻辑写得有点问题,把工程标记成了过期的,导致这个框每次都弹。测试了下VS2005没有这个问题,这也难怪为什么很多从VS2005升级上来的工程都遇到了这个问题,因为一些大工程文件太多了,有些无用的文件可能本地删除了,但是忘记从工程文件里面删除了,VS2005又不提示,导致了这个问题。
解决方案
1、一种显而易见的方案就是找到这个不存在的文件,直接从工程的文件列表里面删除即可,如果工程小,倒是可以这么干,如果工程很大,那就是体力活了。
2、还有一个方法是开发一个工具,解析下VS2010的vcxproj工程文件,这是个XML文件,解析并不困难,把里面的文件都校验一下,把不存在的文件直接找出来。
3、还是一个方法是我在网上(stackoverflow)看到的,通过DbgView工具来输出不存在的文件(此方法需要了解VS的devenv的配置的含义,以及一些脚本的配置方法,我不懂,因此依葫芦画瓢尝试了下,发现好用!),这种方法需要改下VS2010的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) 然后在</configSections>这行的前面添加下面的配置(注:如果是VS2012或者之后的版本value的值使用Verbose)
<system.diagnostics>
<switches>
<add name="CPS" value="4" />
</switches>
</system.diagnostics>
- 1
- 2
- 3
- 4
- 5
(3) 重启下VS。
(4) 打开DbgView,注意把Capture菜单里面的Capture Win32和Capture Events勾选上。
(5) 在VS里面F5开始调试,等”此项目已经过期”的框弹出来之后,去DbgView的输出里面找类似下面的输出(如果内容很多可以直接查找is missing或者not up to date这些关键字)。直接就定位到TARGETVER.H这个文件不存在了。
[36184] Project 'D:\MyCode\Study\HelloWorld\HelloWorld.vcxproj' not up to date because build input 'D:\MYCODE\STUDY\HELLOWORLD\TARGETVER.H'; is missing.
- 1
(6) 通过这个方法可以把所有不存在的文件都找到。
参考文档
[1] VS2010 always thinks project is out of date but nothing has changed http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out-of-date-but-nothing-has-changed
- 本文已收录于以下专栏:
-
-
csanningdn
2017-09-30 10:38 2楼 -
马上国庆放假了 来听听歌。。。。
-
相关文章推荐
-
【错误集锦】VS按调试老是提示“项目已经过期”
点击“重新生成”是没问题的,就是一按调试,就弹出”项目已经过期”的提示,不管之可以继续调试。然后点击exe运行也是没问题的。总之,一调试就警告。 问题解决:项目资源列表内有某些文件不存在,如…- Kelvin_Yan
- 2015年09月02日 18:06
- 2604
-
解决VS2013项目过期后调试时弹出提示对话框问题
相信大家在编译或这调试项目时经常会遇到调试提示对话框,有时候提示对话框会让人觉得很多余,但有时候又觉得提示框十分必要。在利用VS2013调试项目时,编译的时候如果项目过期或者出现编译错误都会出现编译提…- HF_sadanfa
- 2016年12月30日 10:47
- 1380
-
2017年前端报告:程序员薪酬上涨70%!
前端程序员的薪酬曝光,2017年,平均上涨70%,月薪20的人最为常见!以下为详细数据…..
-
启动调试时总是提示此项目已经过期的解决方案
首先在Visual Studio里如果编译没过,那么这个提示就是正常的。 因为此项目已经过期表示你改了某些文件或项目配置或者上次没有编译成功,需要重新编译,否则调试会出错。 如果你上次编译…- jiaxiaokai
- 2016年03月18日 14:39
- 8433
-
VisualStudio 启动调试时总是提示此项目已经过期的解决方案
解决方法: 1. 用记事本打开此项目的工程文件 *.vcxproj 2. 找到其中所有包含的头文件 *.h …- jingliangliu
- 2017年03月23日 21:47
- 2154
-
关于VS2010调试慢和运行慢的问题
关于VS2010调试慢和运行慢的问题- chenlycly
- 2015年11月08日 22:03
- 11644
-
一学就会的 WordPress 实战课
学习完本课程可以掌握基本的 WordPress 的开发能力,后续可以根据需要开发适合自己的主题、插件,打造最个性的 WordPress 站点。
-
Qt 常用类—— QString
QString 类是 Qt 中用于表示字符串的类,实现在 QtCore 共享库中。QString 类在实现上有以下特征。 1)字符串采用 Unicode 内部编码,可以表示世界上大多数语…- itjobtxq
- 2012年11月19日 18:33
- 5164
-
需要这样一个记录本-5 VS2010调试C#项目时提示“当前不会命中断点。还没有为该文档为载任何符号”
困扰了几天的问题。在VS2010中开发的C#项目,调试时,在公共- juns6
- 2014年11月17日 15:55
- 2512
-
win7下vs2010的Visual Assist X插件过期后永久激活方法
win7下vs2010中的Visual Assist X插件过期后永久激活方法。- oktears
- 2013年11月01日 10:25
- 16006
-
win7下vs2010的Visual Assist X插件过期后永久激活方法
网上有很多所谓破解版的VS2010的Visual Assist X插件,但实际上是试用期30天的,试用期过了之后就会出现下面的界面,卸载后再重新安装此插件还是无效,下面提供在Win7下的激活方式。 …- qq_21693211
- 2016年03月08日 08:41
- 195
-
VS2010远程调试C#项目
场景: 客户的计算机运行程序出现异常,由于办公场所不在一起,无法直接在客户的机器上调试。此时希望可以直接在开发人员的计算机(本地机器)上远程调试客户机上的软件。…- doris_d
- 2015年03月07日 02:41
- 460
-
vs2010 一个解决方案 多个项目 调试
S2010启动多个实例调试 项目中经常出现一个解决方案里面有多个程序,如果想按F5启动多个实例进行操作调试那该怎么操作呢? 以前自己都使用附加进程的方法调试,这样的调试不需要按F5,自己只…- zhangbinsijifeng
- 2015年07月10日 13:30
- 3874
-
VC++6.0项目转化为VS2010及调试的相关问题
1、一些math函数必须注意修改 例如fabs(),fabs((float)(key].x)); 例如pow(),pow((float)i , j ); C语言中的数学函数:pow …- hqyhqyhq
- 2012年09月10日 09:50
- 1675
-
VS2010如何进行调试项目更清晰
调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。 这篇文章总结了…- txk15619567977
- 2014年08月27日 11:26
- 1207
-
VS2010如何进行调试项目更清晰
VS2010如何进行调试项目更清晰 调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调…- haiross
- 2016年04月15日 14:19
- 956
-
VS2010远程调试C#项目
- 2015年03月12日 13:09
- 162KB
- 下载
- Chinajiyong
- 2013年04月13日 12:50
- 18550
-
Windows网络编程用VS2010调试时出现的问题及解决方案
我们在学习Windows网络编程的时候,老师要求在Visual Studio 2010里 创建一个聊天项目,小组分工编程时,我遇到的是以下的问题: 问题1::TalkClient.obj : …- Echo_Ana
- 2016年09月09日 21:41
- 552
-
VS2010在加载项目时,提示无法打开项目文件, 此安装不支持该项目类型的解决方法
打开VS2010的解决方案,有的项目加载不进来,出现错误提示“无法打开项目文件 此安装不支持该项目类型”。 解决方法: 1.升级mvc版本 vs2010需要把mvc升到3,默…- wujiaqi168
- 2014年05月06日 15:59
- 5874
-
关于VS2010调试时出现的找不到可执行文件问题的可能的解决办法
关于VS调试时出现的找不到可执行文件问题的可能的解决办法 VS在生成可执行文件时运用了一种新的技术,该技术生成的可执行文件会随同生成一个清单文件(manifest file)(.manifest后缀文…- coder9999
- 2012年05月16日 11:53
- 2138
-
VS2010中搭建Silverlight 5中文开发环境(如今已经有Silverlight 5中文版SDK 2012.8.7)
搭建Silverlight 5中文开发环境 时间:2011-12-27 18:44来源:银光中国网作者:xpeter点击: 1061次 Silverlight 5已于美国时间2011年12…- minsenwu
- 2012年06月12日 14:33
- 5728