在 Visual Studio 2010 中,增量构建是使用文件跟踪器 (Microsoft.Build.Utilities.FileTracker) 完成的。似乎它负责在中间目录上创建这些 *.1.tlog 文件。
我找不到对这些 .tlog 文件语法的任何引用。
它们包含在跟踪器跟踪某些工具的执行时读取/写入的文件的路径列表,以检查应在增量构建中编译哪些文件。但是,这些文件也包含一些特殊字符,例如“^”和“|”。
我注意到的另一件事是,这些文件有时是从 Visual Studio 目标文件中编辑的。例如,在 CustomBuildStep 目标上的 Microsoft.CppCommon.targets 中,我找到了以下行:
<!-- Appended tlog to track custom build events -->
<WriteLinesToFile File="$(IntDir)$(ProjectName).write.1.tlog" Lines="@(CustomBuildStep->'^%(Identity)');@(CustomBuildStep->MetaData('Outputs')->FullPath()->Distinct())"/>
所以这可能意味着项目文件依赖于自定义构建步骤输出。
我的问题是:
- 有谁知道 .tlog 文件语法的参考?
- 在哪些情况下在 Visual Studio 上使用跟踪日志?我知道 CL 和可能使用它的 Link 任务,但似乎 Visual Studio IDE 本身使用它来决定是否为某个项目运行 msbuild。
谢谢
编辑
另一个提示:
CanonicalTrackedInputFiles Class
文档是“ .read 的文件跟踪日志解释器。跟踪规范形式的日志或那些已经植根 (^) 以使其成为规范的日志”
当我有时间时,我会再深入研究一下。也许这个类和Microsoft.Build.Utilities下的其他类可以用来帮助我们处理 tlog 文件,而不是直接处理原始文本 tlog 文件。
另请参阅:CanonicalTrackedOutputFiles Class
,FlatTrackingData Class
当然还有FileTracker Class
。