2

I have a Visual Studio solution which always rebuilds one particular C++/CLI project when starting debugging. Following this question, I've found that VS believes a particular header file is missing:

[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' 

However, this header file is not mentioned by the out-of-date project! It used to be referenced by the project, but I have moved it as part of my current development to a different project in a different directory. According to ack, the only location in the project directory that mentions that file or its .cpp partner is Debug\CppCliProj.Build.CppClean.log

I have tried to re-add and re-remove the file from the project, but VS complains that a file with that name is already in source control, although I have told TFS that it has moved.

How can I stop VS thinking the project is out of date?

Community
  • 1
  • 1
Chowlett
  • 45,935
  • 20
  • 116
  • 150

1 Answers1

1

I run into this situation occasionally when the msbuild tlog files are out-of-date. Periodically, I need to open a command prompt in my solution dir and del /s *.tlog Msbuild will regenerate them during the next full build.

These are files msbuild maintains in its attempts to determine the project dependencies. ex. if your .rc file references a .bmp file but the bmp isn't explicitly added to the project and the bmp changes, the tlog dependencies will still catch it and the project will rebuild.

Also, you've probably already checked this but make sure the file isn't still listed under your Header files folder in Solution Explorer. If it is, VS will think it's a generated file and always want to rebuild the solution in order to generate it.

jschroedl
  • 4,916
  • 3
  • 31
  • 46