2

我有一个 Visual Studio 解决方案,它总是在开始调试时重新构建一个特定的 C++/CLI 项目。在这个问题之后,我发现 VS 认为缺少特定的头文件:

[8392] Project 'c:\projects\CppCliProj\CppCliProj.vcxproj' is not up to date because 1 build inputs were missing. 
[8392] devenv.exe Information: 0 : 
[8392]  up to date is missing: 'C:\PROJECTS\CPPCLIPROJ\STRINGCONVERT.H' 

但是,过时的项目并没有提到这个头文件!它曾经被项目引用,但我已将它作为我当前开发的一部分移动到不同目录中的不同项目。根据ack,项目目录中唯一提到该文件或其 .cpp 伙伴的位置是Debug\CppCliProj.Build.CppClean.log

我试图从项目中重新添加和重新删除文件,但是 VS 抱怨具有该名称的文件已经在源代码管理中,尽管我已经告诉 TFS 它已经移动。

如何阻止 VS 认为项目已过时?

4

1 回答 1

1

当 msbuild tlog 文件过期时,我偶尔会遇到这种情况。定期,我需要在我的解决方案目录中打开一个命令提示符,并且 del /s *.tlog Msbuild 将在下一次完整构建期间重新生成它们。

这些是 msbuild 在尝试确定项目依赖项时维护的文件。前任。如果您的 .rc 文件引用了 .bmp 文件,但 bmp 未显式添加到项目中并且 bmp 更改,则 tlog 依赖项仍将捕获它并且项目将重建。

此外,您可能已经检查过此文件,但请确保该文件仍未列在解决方案资源管理器中的“头文件”文件夹下。如果是,VS 会认为它是一个生成的文件,并且总是想重建解决方案以生成它。

于 2013-08-18T16:18:00.550 回答