Visual Studio Project out of date

<br class="Apple-interchange-newline"><div></div>
3715/5000
23
反对票
什么是“tlog”文件?
“tlog”文件由在执行构建时运行的“Tracker.exe”进程创建,并记录有关构建的一些信息。

这些信息在下次启动构建时使用并更新,以帮助检测“过时”文件,从而使构建系统仅构建需要重建的位(而不是再次构建所有内容)。

文件跟踪器日志文件格式

https://social.msdn.microsoft.com/Forums/vstudio/en-US/67705333-a425-4d6e-9881-9077f044f87a/how-do-i-prevent-msbuild-from-creating-tlog-files-during-我-C-建立?论坛=的MSBuild

https://dickyjim.wordpress.com/tag/tlog-files/

什么导致“过时”问题?
该问题可能由* .tlog文件中的错误或陈旧信息引起。

有三种主要方式可以发生:

1)您在硬盘上创建了一个项目,然后将目录移动到另一个位置......“tlog”文件记录了旧位置的路径,但由于您移动了这些文件,它们不再存在,因此您得到“过时”。

2)您的“项目”引用了文件(通常是头文件),这些文件不在指定的位置。如果您从源代码管理系统中删除了一个文件,但忘记将其从您的项目中删除,或者因为您引用了可能“安装”/存在于不同位置的库的头文件,则可能会发生这种情况。通常情况下,开发人员假设文件位于每个机器上的相同“位置”......并非总是如此!

3)你已经对你的项目进行了一些“重构”,并将文件移动到不同的子目录中,甚至将它们重命名 - 这样记录在“tlog”中的文件的路径/名称与磁盘上存在的文件

有什么方法可以解决它?
做一个“清理+构建”或“重建”并不总是解决它......因为这些操作不会删除“tlog”文件。所以:

删除您可以在解决方案/项目目录中找到并重建的任何“tlog”文件。

确保你的项目没有引用不存在的文件

如何确定哪些文件不存在?
如果您想知道/确切地知道Visual Studio认为哪些文件已过时,那么您可以在Visual Studio中打开一些诊断信息....并在DebugView中观看这些消息...显示完整路径它正在探测的文件。

http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-c-project-system-logging.aspx
在devenv.exe.config中,你把:

<System.Diagnostics程序>
      
<开关>
        
<add name =“CPS”value =“4”/>
      
</交换机>
    
</system.diagnostics>
更多细节
比方说,您在特定的目录中创建了一个解决方案和一组项目,例如S:\ MYPROJECTS,然后编译并运行/调试它等。

然后,您决定将整个目录移动到驱动器上的其他位置,或者重新考虑您的项目,例如改变他们的目录名称等

现在,当您执行“开始调试/ F5”时,Visual Studio会执行相关检查,并认为您有“过期文件”。

即使您执行“清理解决方案”或“重建解决方案”....您仍然收到“过期文件”消息。

看这里:

http://connect.microsoft.com/VisualStudio/feedback/details/653355/suggestion-help-me-diagnose-issues-causing-this-project-is-out-of-date-message
这个问题是由依赖性检查过程中正在咨询的“.tlog”文件造成的......当您移动解决方案/项目(以及构建中间文件)时,它们会导致Visual Studio构建器混淆。

解决办法是删除所有的.tlog文件.....然后在下一次构建时重新生成它们......从那时起,你将不会得到一个假的“过时的文件”消息....除非他们真的过时了。
相关文章
相关标签/搜索