2010-12-11 46 views
33

Tôi không biết liệu tôi có hiểu đúng hay không, sự khác biệt giữa lệnh "xây dựng" và "xây dựng lại" của dự án trong Visual Studio là việc xây dựng chỉ biên dịch mã đã được thay đổi, vì biên dịch lệnh "xây dựng lại" tất cả các mã từ dự án bất kể là nó đã được thay đổi hay không.Sự khác biệt giữa "xây dựng" và "xây dựng lại" trong Visual Studio là gì?

Lệnh xây dựng lại bao gồm một dự án sạch sẽ, vì lệnh xây dựng không?

Hãy tư vấn cho tôi để hiểu rõ hơn những khác biệt này.

Cảm ơn!

+0

__Related # 1__: [Sự khác biệt giữa giải pháp xây dựng, giải pháp xây dựng lại và giải pháp sạch trong Visual Studio] (https://stackoverflow.com/q/3095901/3367974), __Related # 2__: [Sự khác biệt giữa xây dựng lại và làm sạch + Xây dựng trong Visual Studio] (https://stackoverflow.com/q/1247457/3367974) –

Trả lời

27

Lệnh xây dựng lại bao gồm một dự án sạch sẽ, vì lệnh xây dựng không?

Bạn đã xác định sự khác biệt cơ bản.

Xây dựng sẽ xem xét các tệp đã được sửa đổi kể từ lần biên dịch và liên kết thành công cuối cùng và chỉ biên dịch những tệp đó và sau đó liên kết kết quả.

Xây dựng lại sẽ biên dịch lại mọi thứ.

Nói đúng cách nó có thể khác với sạch (loại bỏ các tệp trung gian và đầu ra) và xây dựng và chỉ biên dịch lại mọi thứ, nhưng kết quả sẽ giống nhau. Tuy nhiên, có thể có trường hợp không thành công (xem nhận xét của Femaref).

+1

Đến điểm cuối cùng của bạn: Nó phụ thuộc. Trong một số trường hợp, các tệp tạm thời hoặc các tham chiếu đã thay đổi có thể làm gián đoạn quá trình xây dựng của bạn, đặc biệt là với trường hợp sau, vì không có mã nào thay đổi, nhưng các tham chiếu cũ vẫn được sử dụng. Cần phải làm sạch để thay thế chúng. – Femaref

+2

Không chắc chắn lý do tại sao, nhưng đôi khi làm sạch dường như không loại bỏ tất cả các tài liệu tham khảo cũ. Khi điều này xảy ra, tôi sẽ xóa thư mục obj. – Trevor

26

Xây dựng có nghĩa là biên dịch tất cả mã đã bị thay đổi hoặc được viết sau lần biên dịch cuối cùng.

Xây dựng lại có nghĩa là biên dịch toàn bộ dự án bất kể mã có bị thay đổi hay không.

Vì vậy, sau khi bạn đọc câu trả lời của tôi, có bạn sẽ chính xác.

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