2013-04-16 36 views
19

Gần đây, chúng tôi đã gặp phải một vấn đề lạ với TFS 2010. Chúng tôi đã dành một vài ngày trước khi chúng tôi tìm ra. Chỉ muốn chia sẻ kiến ​​thức của tôi về vấn đề có thể giúp người khác.TFS 2010 - VersionControl.config không hợp lệ và không thể tải

Nó đã hoạt động trước đó mà không gặp vấn đề gì trong khoảng 2 năm. Nhưng đột nhiên, các bản dựng bắt đầu không thành công với lỗi sau:

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. MSBUILD : error MSB4017: The build stopped unexpectedly because of an unexpected logger failure. Microsoft.Build.Exceptions.InternalLoggerException: The build stopped unexpectedly because of an unexpected logger failure. ---> Microsoft.TeamFoundation.VersionControl.Client.VersionControlException: The cache file C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Team Foundation\3.0\Cache\VersionControl.config is not valid and cannot be loaded. Please correct or delete the file. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.TeamFoundation.VersionControl.Client.InternalCacheLoader.LoadConfig(InternalCache currentCache, Boolean dataDirectoryExists, InternalWorkspaceConflictInfo[]& conflictingWorkspaces) --- End of inner exception stack trace --- at Microsoft.TeamFoundation.VersionControl.Client.InternalCacheLoader.LoadConfig(InternalCache currentCache, Boolean dataDirectoryExists, InternalWorkspaceConflictInfo[]& conflictingWorkspaces)

Việc xóa nội dung của thư mục Bộ nhớ cache được đề cập trong thông báo lỗi không hữu ích.

Có một sự trùng hợp của 2 thứ xung quanh thời điểm đó:

  • máy chủ đã chạy ra khỏi không gian trống trong ổ đĩa C:

  • người hỗ trợ của chúng tôi đã cài đặt bản cập nhật Windows, bao gồm Service Pack 1 cho TFS là tốt.

Một số dự án của chúng tôi là 32 bit, như Silverlight chẳng hạn, phải là 32 bit, chưa bao giờ 64. Tuy nhiên, máy chủ TFS của chúng tôi là 64 bit. Để biên dịch các dự án đúng cách, các định nghĩa xây dựng nên chỉ định hoặc là "Tự động" (chạy trình biên dịch 64 bit như máy chủ TFS) hoặc "X86" thực thi việc biên dịch 32 bit.

Những thiết bị X86 bắt đầu thất bại đột ngột với lỗi được đề cập ở trên.

SOLUTION:

Rõ ràng, có một vị trí của thư mục bộ nhớ cache cũng như: C: \ Windows \ SysWOW64 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Team Foundation \ 3.0 \ Cache

Chúng tôi đã xóa nội dung của thư mục đó và mọi thứ bắt đầu hoạt động bình thường.

BTW: không có gì liên quan đến công tắc/m. Chúng tôi đã thử nó, nhưng nó không giúp được gì.

+2

Hãy làm cho giải pháp của bạn là câu trả lời (hoàn toàn hợp pháp để trả lời câu hỏi của riêng bạn về SO - thực tế nó được khuyến khích.) Bằng cách đó câu hỏi của bạn sẽ không hiển thị trong danh sách "câu hỏi chưa được trả lời". –

Trả lời

4

Xóa tất cả các thư mục cache:

  • %WINDIR%\System32\Config\Systemprofile\AppData\Local\Microsoft\Team Foundation\3.0\Cache
  • %WINDIR%\SysWOW64\Config\Systemprofile\AppData\Local\Microsoft\Team Foundation\3.0\Cache
9

tôi đã cùng một vấn đề sau một cảnh báo không gian đĩa thấp.

Xóa/đổi tên tệp C: \ Users \ user.name \ AppData \ Local \ Microsoft \ Team Foundation \ 4.0 \ Cache \ VersionControl.config giải quyết được vấn đề trong trường hợp của tôi.

2

Trình khám phá nhóm xuất hiện dưới dạng được kết nối với TFS. Nhưng "Source Control Explorer" được gắn nhãn là bị ngắt kết nối.

xóa "C: \ Users \ user.name \ AppData \ Local \ Microsoft \ Team Foundation \ 4.0 \ Cache \ VersionControl.config" cũng đã giải quyết vấn đề. (thx)

1

Sau @ mhu ngụ ý rằng các thư mục TFS Cache cần được xóa, tôi đã tìm kiếm đầy đủ các thư mục "Team Foundation" có thư mục con Cache trên máy chủ xây dựng của tôi.

Sau đó, tôi đã tạo tệp lô sẽ xóa chúng. Các bản dựng của tôi hoạt động sau khi tập lệnh này được chạy.

Tên tập tin: Nội dung ClearTFSCache.bat File:

@echo+ 

@echo Removing TFS Cache Folder #1 
@RD /S /Q "C:\Users\AAA_USERNAME\AppData\Local\Microsoft\Team Foundation\4.0\Cache" 

@echo Removing TFS Cache Folder #2 
@RD /S /Q "C:\Windows\ServiceProfiles\BBB_SERVICEACCOUNT\AppData\Local\Microsoft\Team Foundation\4.0\Cache" 

@pause 

Có hai biến nên được thay thế ở đây: -

  1. AAA_USERNAME là dành cho tên người dùng của người dùng hiện tại (dựa trên bằng tay đăng nhập vào máy chủ).
  2. BBB_SERVICEACCOUNT là dành cho các tài khoản sử dụng để chạy các TFS Xây dựng Dịch vụ, truy cập qua Team Foundation Server Administration Console:

    How to find out where TFS Cache is

    Trong trường hợp của tôi, đó là 'NetworkService'.