2013-08-30 30 views
6

Sau khi nâng cấp giải pháp của chúng tôi lên Visual Studio 2012, chúng tôi đang tìm cách tận dụng lợi thế của tính năng Code Analysis mới. Tuy nhiên, phải mất quá nhiều thời gian để chạy, bởi vì nó đang xây dựng lại dự án và các dự án phụ thuộc trước khi nó chạy, mặc dù mã đã không thay đổi và không cần xây dựng lại.Ngăn chặn phân tích mã từ xây dựng lại dự án và phụ thuộc trong Visual Studio 2012

Có cách nào để ngăn chặn nó xây dựng lại mã nếu không cần xây dựng lại?

+0

Khá chắc chắn việc xây dựng lại là phân tích mã tĩnh đang chạy. –

Trả lời

1

Nếu bạn mới bắt đầu sử dụng phân tích mã, bạn có thể nhầm lẫn các triệu chứng. Bạn đang nhìn thấy: e phân tích 1. Mã mất một số lượng đáng kể thời gian, và 2. Trong phân tích mã, dự án xây dựng

Bạn có thể kết hợp hai triệu chứng này và đạt kết luận rằng phân tích mã được buộc một xây dựng lại dự án của bạn. Đây sẽ là một giả định sai lầm. Hãy thử điều này:

  1. Đảm bảo rằng dự án của bạn được cấu hình để không phân tích mã chạy khi xây dựng
  2. Rebuild giải pháp của bạn. Lưu ý phải mất bao lâu
  3. Build (không xây dựng lại) giải pháp của bạn, nhưng lần này, lưu ý phải mất bao lâu

Bạn sẽ thấy rằng giải pháp của bạn thực sự "xây dựng", nhưng kể từ khi các dự án được cập nhật, các trình biên dịch và các công cụ khác không chạy. Vì vậy, đúng là phân tích mã chạy xây dựng giải pháp của bạn trước tiên, nhưng nó sẽ là một bản dựng như # 3 ở trên - không có gì thay đổi, do đó các công cụ sẽ không chạy. Chỉ có công cụ phân tích mã (FxCop) mới chạy được. Điều này mất nhiều thời gian hơn bạn có thể mong đợi, nhưng nó có giá trị nó.

Trong môi trường của chúng tôi, tôi đã tạo một giải pháp "Địa phương" và cấu hình dự án, được sao chép từ "Gỡ lỗi". Cấu hình này chủ yếu giống như "Gỡ lỗi", nhưng không chạy phân tích mã. Đây là những gì các nhà phát triển của chúng tôi sử dụng trên cơ sở hàng ngày. Khi mã được kiểm tra vào TFS, nó bắt đầu xây dựng Continuous Integration (CI) trong cấu hình "Local", một lần nữa, không cần phân tích mã.

Mặt khác, bản dựng hàng đêm chạy cấu hình "Gỡ lỗi", vì vậy nó chạy phân tích mã. Tôi thấy rằng chúng tôi không cần kết quả phân tích mã trên mọi công trình xây dựng, nhưng nó cũng rất cần thiết mỗi ngày một lần.

OBTW, Phân tích mã không phải là mới. Nếu bạn nhìn vào trang MSDN mà bạn đã liên kết, bạn sẽ tìm thấy phiên bản 2010 của trang trong danh sách thả xuống "Các phiên bản khác". Trong thực tế, tính năng phân tích mã có sẵn như là một bổ trợ Visual Studio được gọi là "FxCop", trước khi nó trở thành một phần của sản phẩm.

+5

Xin chào Cảm ơn bạn đã phản hồi. Linh hồn chắc chắn đang tái xây dựng lại trên phân tích mã. Cửa sổ Output cho thấy điều này. Thời gian để tự xây dựng lại và chạy phân tích mã gần như giống nhau. Việc phân tích mã không chạy khi bạn xây dựng lại. Thời gian xây dựng nhanh hơn rất nhiều. – user2732185

2

Tôi tin rằng tuyên bố của John ở trên không chính xác.

Theo kinh nghiệm của tôi, các dự án luôn được xây dựng lại bất kể chúng được cấu hình để phân tích mã hay không.

Tôi có giải pháp với hơn 100 dự án. nếu tôi chọn 1 dự án và chỉ chạy mã phân tích trên dự án đó, nó sẽ xây dựng lại dự án đó và tất cả các dự án mà nó phụ thuộc vào. Nó không chạy phân tích mã trên các dự án khác, nhưng nó vẫn xây dựng lại chúng.

Vậy tại sao nó phải xây dựng lại tất cả các dự án con để chạy phân tích mã?

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