在使用Visual Studio调试工程的时候偶尔会遇到这个问题,之所以VS有这个提示说明VS编译器认为在上一次的编译后有文件发生了改变,通常这也是正常的情况,先编译再调试就不会有问题了。
但是在特殊的情况下,比如代码挪动位置了或者代码版本库做了一次Clean up, 然后就被这个问题折磨了,明明已经编译完了,而且编译没错,但是只要一调试就报这个问题。虽然可以选中“不再显示此对话框”来解决这个问题,但实际上是把真正的问题隐藏了,VS还会先编译后调试的。
已经我的一番探索发现,原来是因为:项目中有文件从硬盘被删除了,但是没有从解决方案中删除。虽然编译器不报错,但是VS总是认为这个文件在上一次的编译后发生了改变。所以才会有开头的提示:此项目已经过期,是否希望生成它?
所以,解决办法就很简单了:挨个打开项目中的文件,找到已被删除的文件,然后从解决方案里面删除。
整个世界顿时清净了。