2009-08-09 21 views
50

Sau khi một số sử dụng Visual Studio 2008 khi mở một giải pháp được kiểm tra vào Visual Studio Team Foundation sẽ bật lên một hộp thoại nói:Làm thế nào để giải quyết ... Visual Studio Source Control thông báo "Dự án gần đây đã được thêm vào giải pháp này"

Dự án gần đây đã được thêm vào giải pháp này. Bạn có muốn lấy chúng từ kiểm soát nguồn không?

Điều này xảy ra mỗi lần giải pháp được tải (ngay cả khi không có dự án nào được thêm). Cách duy nhất tôi đã tìm thấy để loại bỏ phiền toái nhỏ này là để xây dựng lại hoàn toàn tệp SLN.

Có ai tìm thấy cách tốt hơn/đơn giản hơn không?

Trả lời

31

Này, điều này thực sự đã xảy ra với tôi khoảng 4 năm trước.

Đầu tiên, có vẻ như tôi thích một người nào đó trong nhóm của bạn không có tất cả các bản cập nhật được áp dụng cho cài đặt studio trực quan của họ. Đi xung quanh và giúp mọi người nâng cấp lên gói dịch vụ mới nhất cho phiên bản VS của bạn.

Khi đã xong, hãy hủy liên kết giải pháp, sửa tệp, rebind và yêu cầu mọi người làm một lực mới nhất trong dự án TFS của bạn.

Xem http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/c2822ef1-d5a9-4039-9d3e-498892ce70b6

http://www.nivisec.com/2008/09/vsts-projects-have-recently-been-added.html

(phá vỡ liên kết: http://technorati.com/posts/Yadz3Mj1pxHPSJLlnUs1tL1sIwU5jXa5rNBbIAnYdvs%3D)

+0

BTW. Đó thực sự là cách đây hơn 5 năm. : P – mayu

+0

@Tymek: Vâng ... Tôi đã viết điều này trong '09, đó là 3 1/2 năm sau .. gần hơn đến 7+.:) Đoán tôi đã làm điều này một thời gian. – NotMe

+0

Tôi đã sử dụng ngày 'đã chỉnh sửa', nhưng khi tôi nhìn vào ngày chỉnh sửa chỉ dành cho liên kết bị hỏng. – mayu

3

Thông báo này cũng sẽ xảy ra nếu giải pháp của bạn có một tham chiếu đến một dự án có vị trí nằm ngoài thư mục giải pháp, nhưng nó không thực sự tồn tại (tức là bạn chưa kiểm tra nó trước khi mở giải pháp). VSS (hoặc TFS) sau đó sẽ cung cấp cho bạn thông báo đó và nhấn OK sẽ tự động nhận được thông tin mới nhất về dự án bị thiếu, vì vậy giải pháp của bạn sẽ không có bất kỳ dự án nào chưa được tải trong đó.

EDIT:

Reading đó một lần nữa bối rối cho tôi. Về cơ bản, bạn nhận được thông báo nếu giải pháp của bạn có một điều khiển nguồn ràng buộc với một dự án không nằm trong thư mục mà giải pháp của bạn đang có, và dự án bên ngoài đó không tồn tại trên máy tính của bạn. Nhấp vào OK sẽ kiểm tra dự án cho bạn.

+0

Trên dòng cuối cùng, bạn có nghĩa là "kiểm tra dự án" hoặc "nhận mới nhất về dự án" không? Các đoạn văn của bạn dường như mâu thuẫn vào thời điểm này. –

+0

Vâng, đăng buổi sáng sớm là điều tôi nên tránh. Nhấp vào "Tiếp tục" sẽ _get_ dự án và đặt nó liên quan đến vị trí của giải pháp yêu cầu. Vì vậy, nếu giải pháp của bạn là tại 'C: \ Dev \ Client \ Someone \ SolutionA' và" dự án được thêm gần đây "được tham chiếu tại' .. \ .. \ .. \ Common \ ProjectB' từ bên trong giải pháp của bạn, nó sẽ _get_ dự án và đặt nó tại 'C: \ Dev \ Common \ ProjectB' để các tham chiếu của giải pháp của bạn đều hợp lệ. Điều đó có ý nghĩa? –

37

Tôi đã có điều này gần đây sau khi chúng tôi di chuyển một số dự án trong giải pháp. Cuối cùng tôi đã làm việc, rằng mỗi dự án thực tế xuất hiện trong tệp giải pháp nhiều lần mỗi với thông tin đường dẫn! Vì vậy, mặc dù đường dẫn trong tài liệu tham khảo chính của dự án là chính xác nhưng nó đã đi sâu hơn vào tệp.

Vì vậy, hãy đi qua tệp .sln và đảm bảo đường dẫn trong tất cả tham chiếu của từng dự án là chính xác.

Ví dụ, tài liệu tham khảo đầu tiên cho một trong những dự án của tôi là:

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ObexPushVB", "Samples\ObjectPush\ObexPushVB\ObexPushVB.vbproj", "{E3692A59-D636-48E8-9B57-7DA80A88E517}" 
EndProject 

Trong trường hợp của tôi con đường đó đã được cập nhật một cách chính xác.Nhưng sau đó chúng tôi cũng có cho dự án đó:

SccProjectUniqueName8 = Samples\\ObjectPush\\ObexPushVB\\ObexPushVB.vbproj 
SccProjectTopLevelParentUniqueName8 = InTheHand.Net.Personal.sln 
SccProjectName8 = Samples/ObjectPush/ObexPushVB 
SccLocalPath8 = Samples\\ObjectPush\\ObexPushVB 

Vì vậy, tất cả các đường dẫn cần được cập nhật! Sau khi tôi cố định tất cả các thủ công đều tốt. (Mẫu có sau khi sửa chữa BTW).

+17

Chỉ cần một FYI: Để thực hiện những gì bạn đã phác thảo ở trên nhưng theo cách tự động hơn, tôi mở tệp giải pháp trong trình soạn thảo văn bản (sau khi kiểm tra nó ra) và xóa nút GlobalSection (TeamFoundationVersionControl) = preSolution. Sau đó, tôi mở giải pháp trong Visual Studio và thực hiện Unbind/Bind trên mọi thứ trong giải pháp. Điều này cập nhật mọi thứ với đường dẫn chính xác và bây giờ các lỗi đã biến mất. Cảm ơn bài đăng của bạn. –

+2

Cảm ơn. Đó sẽ là cách giải quyết nó an toàn hơn và nhanh hơn! (Mặc dù tôi khá giống như một chút của cấu hình masochistic tay-chỉnh sửa ngay bây giờ và sau đó!: -,)) – alanjmcf

+0

Cảm ơn bạn alanjmcf! Điều đó đã sửa nó cho tôi. Tôi vui vì tôi không phải trải qua tất cả những rắc rối như được mô tả trong câu trả lời được chấp nhận của Chris Lively. – bitbonk

1

Trong trường hợp của tôi, đó là tham chiếu đến dự án thử nghiệm đã bị xóa.

Tôi nhận thấy rằng khi tôi kiểm tra tất cả các dự án trong Solution Explorer. Nhóm của chúng tôi sử dụng các thư mục giải pháp để nó không hiển thị bình thường và bởi vì nó là một dự án thử nghiệm, nó không có bất kỳ tác động nào đối với ứng dụng.

Sau khi xóa dự án khỏi giải pháp, thư không còn được hiển thị nữa.

1

Tôi đang làm việc với Visual Studio 2013.

Đối với tôi, nó đã xảy ra sau khi đã sửa đổi cấu trúc của thư mục của giải pháp của tôi (Tôi đã thêm một thư mục con cho một dự án trực tiếp trên mã thám hiểm nguồn). Tôi đã loại bỏ lỗi nhàm chán này bằng cách xóa tất cả các dự án khỏi giải pháp của tôi, bằng cách sử dụng trình khám phá giải pháp. Sau đó, tôi đóng Visual Studio, tự chỉnh sửa file sln và loại bỏ toàn bộ phần:

GlobalSection(TeamFoundationVersionControl) = preSolution 

Để kết thúc, tôi chỉ cần thêm các dự án trở lại với các giải pháp như "các dự án hiện tại" với giải pháp thám hiểm. Visual Studio sẽ tự tạo lại phần đã xóa của tệp .sln.

0

Thông báo lỗi tương tự có thể xảy ra nếu ai đó thêm dự án, tệp giải pháp đã chỉnh sửa đăng ký nhưng không thêm thư mục dự án vào kiểm soát nguồn.

Để cắt ngắn câu chuyện dài - lỗi này có thể có nghĩa là trong tệp .sln có tham chiếu đến tệp .csproj, nhưng bản thân .csproj bị thiếu.

0

Trong trường hợp của tôi, tôi đã đổi tên một dự án (n) (chưa tải) trong VS. Nó đã di chuyển một cách chính xác dự án đến một thư mục mới và không có dữ liệu nào bị mất. Tuy nhiên tập tin giải pháp vẫn chỉ vào thư mục cũ mà vẫn còn tồn tại nhưng đã được sản phẩm nào (vì vậy dự án có thể không thực sự được nạp).

Sau khi xóa dự án khỏi giải pháp (không có vấn đề gì vì thư mục đã trống hết), sự cố đã được giải quyết.

Việc thêm lại dự án từ vị trí mới cũng không thành vấn đề.

0

Tôi gặp sự cố này sau khi di chuyển một số dự án thử nghiệm đơn vị đã được kiểm soát nguồn (VSTS) vào một thư mục khác. Sau này, bất cứ khi nào tôi mở một chi nhánh, tôi sẽ nhận được các "Dự án gần đây đã được thêm vào giải pháp này. Bạn có muốn lấy chúng từ kiểm soát nguồn không?" lỗi.

Vì lý do nào đó tệp csproj từ thân cây không nằm dưới sự kiểm soát nguồn có nghĩa là nó bị thiếu trong phiên bản phân nhánh. Đôi khi tôi thấy điều này xảy ra sau khi di chuyển các dự án được kiểm soát nguồn.

Để khắc phục, tôi đã mở nguồn gốc gốc, sử dụng Trình kiểm soát nguồn để sử dụng tệp bị thiếu, sau đó hợp nhất thân cây với các nhánh để sao chép tệp csproj bị thiếu.

Sau này, tôi có thể mở các phiên bản phân nhánh mà không có cảnh báo xuất hiện.

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