最近,我们在使用 TFS 2010 时遇到了一个奇怪的问题。我们花了几天时间才弄明白。只是想分享我对可能对其他人有帮助的问题的知识。
它以前可以正常工作大约 2 年。但突然之间,构建开始失败并出现以下错误:
一次在此解决方案中构建项目。要启用并行构建,请添加“/m”开关。MSBUILD:错误 MSB4017:由于意外的记录器故障,构建意外停止。Microsoft.Build.Exceptions.InternalLoggerException:由于意外的记录器故障,构建意外停止。---> Microsoft.TeamFoundation.VersionControl.Client.VersionControlException:缓存文件 C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Team Foundation\3.0\Cache\VersionControl.config 无效,不能加载。请更正或删除文件。---> System.NullReferenceException:对象引用未设置为对象的实例。在 Microsoft.TeamFoundation.VersionControl.Client.InternalCacheLoader.LoadConfig(InternalCache currentCache,
删除错误消息中提到的 Cache 文件夹的内容没有帮助。
当时有两件事巧合:
服务器在驱动器 C 中的可用空间不足:
我们的支持人员正在安装 Windows 更新,包括 TFS 的 Service Pack 1。
我们的一些项目是 32 位的,例如 Silverlight,它必须是 32 位的,而不是 64 位的。但是,我们的 TFS 服务器是 64 位的。为了正确编译项目,构建定义应指定“Auto”(与 TFS 服务器一样运行 64 位编译)或强制 32 位编译的“X86”。
那些是 X86 的那些突然开始失败并出现上述错误。
解决方案:
显然,Cache 文件夹还有另一个位置:C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\Team Foundation\3.0\Cache
我们删除了该文件夹的内容,一切都开始正常工作。
顺便说一句:它与 /m 开关无关。我们也尝试过,但没有帮助。