2011-01-26 30 views
28

Về dự án hiện tại tôi đang làm việc, hiện tại, một mã churn lớn, có nghĩa là cập nhật từ kiểm soát nguồn có thể có nghĩa là nhiều lần thay đổi tệp csproj . Như chúng ta đã biết, VS2010 không có nút "Tải lại tất cả", nhưng bạn phải tải lại từng dự án và xác nhận mỗi lần tải lại.Làm cho giải pháp tải lại tự động Visual Studio 2010 khi các tệp dự án thay đổi

Có phương pháp nào trong đó dự án được tải lại tự động hoặc IDE có thể phát hiện điều này và yêu cầu tải lại giải pháp không?

Trả lời

29

Cuối cùng tìm ra giải pháp :

http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with-vscommands/

Trích dẫn từ trang web:

Khá lâu tôi sẽ thấy mình làm việc trong tình huống mà nhiều dự án đã thay đổi, và Visual Studio hỏi để tải lại chúng, cùng một lúc. này xảy ra khi tôi đang làm việc rất nhiều với việc kiểm soát nguồn và thực hiện những việc như chuyển đổi các chi nhánh, thực hiện hợp nhất, hoặc chỉ tích hợp các thay đổi ngược dòng. Tôi phải nhấp vào "Tải lại" một triệu lần cho mỗi dự án đã thay đổi trên đĩa và điều này khá khó chịu. Trên đầu trang trong số đó, VS quên các tệp nào tôi có số mở, vì vậy mọi tệp mà tôi đang làm việc sẽ bị đóng.

tôi có thể là người dùng cuối cùng VS để tìm hiểu về điều này, nhưng một phiên bản lite miễn plugin VSCommandsavailable on the Visual Studio Gallery mà không chỉ là những gì tôi cần - tải lại tất cả các thay đổi dự án cùng một lúc, giữ gìn mà file Tôi đã mở:

+1

Khi liên kết chết, giải pháp bị mất vĩnh viễn. Bạn có thể vui lòng cải thiện câu trả lời của mình bằng cách mô tả bản sửa lỗi không? Cảm ơn! Đã cập nhật –

+0

nhận xét. –

+0

@RayBooysen: Bạn có thể muốn cập nhật liên kết và xóa thông số Google Analytics (chúng sẽ bóp méo các thống kê của trang web) - http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with- vscommands/sẽ làm. – Oliver

-3

Nếu bạn đã chọn tùy chọn "phát hiện khi tệp được thay đổi bên ngoài môi trường" trong phần "Tài liệu" của tùy chọn, dự án và tệp được tải lại khi thay đổi. Nó hoạt động cho tôi khi chuyển nhánh trong git.

VS option screenshot

+1

Không, không hoạt động. Chúng tôi đã thử điều đó. –

+3

Thật vậy, nó hoạt động cho các tệp nguồn nhưng không hoạt động cho các tệp dự án. –

+0

Tối đa VS 2010 (ít nhất) không có tính năng tự động tải lại tệp dự án đã sửa đổi - bạn sẽ luôn phải chạy trò chơi "Tải lại dự án" với Visual Studio nếu tệp dự án thay đổi bên ngoài. – Oliver

4

Đó là một nỗi đau, nhưng lựa chọn tốt nhất tôi đã tìm thấy là Đóng giải pháp trước Bắt mã nguồn mới nhất.

Nếu có nhiều hơn hai dự án đã thay đổi, nó là nhanh hơn để tự dỡ bỏ & tải lại toàn bộ giải pháp hơn là để Nhận và chờ cho nó để dỡ bỏ & reload chỉ các dự án bị ảnh hưởng - tải lại dự án là một cách đau đớn chậm (thậm chí bỏ qua việc phải nhấp vào nút OK cho mọi dự án đã thay đổi).

(Trong tâm trí của tôi câu hỏi thực sự là: Tại sao nó hỏi câu hỏi đó ??? Nếu bạn Lấy mã nguồn mới nhất, có hoàn toàn không có lý do nào tại sao bạn chỉ muốn sử dụng một phần của nó Nó giống như một nhân viên trạm xăng nói rằng "Bạn đã mua một số nhiên liệu. Bạn có muốn tôi thực sự đặt nó trong xe của bạn, hoặc tôi sẽ đổ nó xuống đất?")

+0

Vấn đề là với hầu hết các công cụ (trong trường hợp của chúng tôi VisualSVN hoặc AnkhSVN), bạn không biết những gì đã thay đổi cho đến khi bạn bấm Cập Nhật. Và sau đó bạn chơi trò chơi "Tải lại dự án" với Visual Studio. –

+0

@Ray Booysen: Tôi vừa nhận ra một phương pháp cải tiến: Chỉ cần GLV như bình thường. Nếu nó yêu cầu nếu bạn muốn tải lại dự án đã thay đổi, hãy nhấp vào "Bỏ qua" - bạn có thể chuyển nhanh tất cả các dự án đã thay đổi bằng cách bỏ qua chúng và sau đó Đóng/Mở lại giải pháp sau để đồng bộ hóa mọi thứ. Điều này tránh sự cần thiết phải đóng/mở giải pháp xung quanh mỗi GLV - bạn chỉ làm điều đó nếu một dự án đã thực sự thay đổi. –

+0

Nó vẫn là một điệu nhảy tôi không muốn làm với VS. ;) –

1

Vâng, điều đó không hiệu quả nếu đường dẫn tham chiếu của bạn thay đổi trong tệp csproj và bạn sử dụng một cái gì đó như sysinternals junction tool để thay đổi liên kết tượng trưng. Ví dụ. công cụ chuyển mạch D: \ Projects symlink từ D: \ Baselines \ 1.0 \ Prjects thành D: \ Baselines \ 2.0 \ Projects và bởi vì ai đó đã thay đổi cấu trúc thư mục từ 1.0 đến 2.0, tệp .csproj của bạn đột nhiên trỏ đường dẫn dll từ .... \ References \ some.dll đến .... \ Tham khảo \ 3rd-Party \ some. dll. Tôi biết đó là trường hợp đặc biệt, nhưng xảy ra (ví dụ: trong công ty của tôi).

Có một giải pháp thay thế, tuy nhiên, tôi khuyên bạn nên sử dụng giải pháp này vì nó cũng có các lợi ích khác: phần mở rộng VS 2010 không nổi tiếng Solution Load Manager. Nó ngăn cản tải các dự án lên nền, hoặc cho đến khi được nạp theo cách thủ công, cải thiện thời gian tải giải pháp rất nhiều cho các tệp giải pháp lớn. Nó có nút "giải pháp tải lại" này trong menu của nó (không may là dường như không có phím tắt), sau đó tải lại tất cả các giải pháp từ đầu, bỏ qua/tải nền các giải pháp bạn đã đặt. Một anh chàng Microsoft đã bình luận trên blog của mình rằng họ muốn bao gồm một cái gì đó tương tự như VS 2010, nhưng tính năng này đã không hoàn toàn làm cho nó. Chắc chắn, có thể mất nhiều thời gian hơn "chỉ" một cú nhấp chuột và cập nhật 100 tài liệu, nhưng nó giải quyết được vấn đề của tôi (thay đổi) đường dẫn tham chiếu và tăng tốc độ tốt mỗi khi tôi mở một giải pháp có kích thước trung bình ít nhất. .

Chỉnh sửa từ tháng 10 năm 2013 VS2012 bao gồm chức năng này theo mặc định. Ít nhất là công cụ tải không đồng bộ. Chức năng "không tải ở tất cả" là không may chỉ có thể bằng cách sử dụng "dỡ bỏ dự án" thủ công trong VS2012. Nhưng khi mức tiêu thụ bộ nhớ dự án đã giảm xuống với VS2012, nó không phải là một thỏa thuận lớn nữa.

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