2011-11-08 33 views
7

Tôi có 2 định nghĩa xây dựng được thiết lập cho giải pháp, 1 là bản dựng hàng đêm được kích hoạt mỗi đêm và phiên bản khác là bản dựng Gated Check-In sẽ kích hoạt khi nhà phát triển thử kiểm tra các thay đổi mới trong kiểm soát nguồn. Bản dựng hàng đêm đang sử dụng mẫu tùy chỉnh làm tăng các phiên bản lắp ráp bằng phương pháp đã được sửa đổi một chút từ Ewald Hoffman method. Khi một tập tin được kiểm tra trong thông qua các hoạt động tùy chỉnh để kiểm tra tập tin trong, tôi nhận được lỗi build:Tôi có thể bỏ qua xây dựng Đăng ký Gated sau khi kiểm tra tệp trong quá trình xây dựng riêng biệt không? TFS 2010

Your check-in could not be completed because it affects the following gated build definitions \Project\GatedBuld. To complete your check-in you will need to queue a build of the shelveset Gated_2011-11-08_09.31.42.6934;DOMAIN\TFSBuildAccount.

Hiện nay tôi đã không thể tìm thấy một cách để vượt qua gated check-in build này (CI xây dựng được ngăn chặn bằng cách sử dụng * NO_CI * kiểm tra trong bình luận).

Tôi đã thử thiết lập quyền "Ghi đè xác nhận đăng ký bằng cách xây dựng" cho tài khoản dịch vụ xây dựng (qua Bảo mật cho cấu trúc có cổng), nhưng theo tôi biết điều này sẽ chỉ ngăn chặn việc xây dựng cổng khi kiểm tra mã thủ công (thông qua một hộp kiểm được trình bày trong hộp thoại Đăng ký Gated). Những gì tôi đang tìm kiếm là một cách để bỏ qua một cấu trúc có cổng khi kiểm tra các thay đổi tự động

Bất kỳ đề xuất nào?

Như mọi khi, nhờ sự giúp đỡ nào trước

Trả lời

7

Khi bạn checkin thay đổi của bạn lập trình, bạn có thể tạo một đối tượng WorkspaceCheckInParameters và thiết lập thuộc tính OverrideGatedCheckIn của nó là true. Các mã sau đây sẽ Bypass gated checkin (và cũng CI):

  var pendingChanges = workspace.GetPendingChanges(); 
      if (pendingChanges.Any()) 
      { 
       WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment) 
       { 
        OverrideGatedCheckIn = true, 
       }; 
       workspace.CheckIn(parameters); 
      } 

Lưu ý rằng bạn cần phải cấp quyền bỏ qua checkin gated trên tài khoản đó thực hiện checkin cho tất cả các định nghĩa xây dựng bị ảnh hưởng. Trong trường hợp này, nó là tài khoản dịch vụ xây dựng của xây dựng Nightly.

0

tôi đã viết mã cập nhật Version hội trong Powershell và không thể tìm thấy mã slimier "OverrideGatedCheckIn = true" đối với Powershell và tất cả những gì đã được di chuyển tập tin phiên bản lắp ráp (SharedAssembly.vb & SharedAssembly.cs) vào một thư mục có tên SharedAssembly và loại trừ chúng để xem xét cho quá trình GatedCheck-In.

enter image description here

Các vấn đề liên quan