2008-10-24 37 views

Trả lời

62

Thư mục "obj" "obj" được sử dụng để lưu trữ các tệp đối tượng tạm thời và các tệp khác được sử dụng để tạo nhị phân cuối cùng trong quá trình biên dịch.

Thư mục "bin" "bin" là thư mục đầu ra cho các tệp nhị phân hoàn chỉnh (cụm).

43

Ngoài splattne's answer, tôi tin rằng lý do vì có nó (và không dọn dẹp sau khi xây dựng) là để hỗ trợ biên soạn gia tăng. Nếu bạn đã biên soạn 100 lớp và thay đổi một trong số chúng, sẽ hiệu quả hơn nhiều khi biên dịch lại mã cho lớp đã thay đổi và tập hợp lại tệp exe/dll từ hỗn hợp của mã mới và cũ. Tất nhiên, việc biên dịch gia tăng phức tạp hơn rất nhiều so với điều đó - nó phải theo dõi mọi thứ để nó có thể phát hiện khi cần biên dịch lại một lớp ngay cả khi chính lớp đó không thay đổi. (ví dụ: nếu quá tải mới có sẵn trong một lớp học - một số người gọi có thể cần phải được biên dịch lại.)

+0

Nguồn của tệp 'obj' là gì? Tôi hỏi vì tôi đang gặp sự cố với dự án Azure Cloud Service đang đóng gói phiên bản sai của 'System.Runtime.dll'. Vui lòng xem [tại đây] (http://stackoverflow.com/q/40572793/7850). –

+0

@ ShaulBehr: Không chắc chắn ý bạn là gì bởi "nguồn" ở đây, nhưng tôi không nghĩ tôi có thể làm sáng tỏ vấn đề của bạn, tôi sợ. –

+0

Tôi có nghĩa là, làm thế nào để Visual Studio quyết định phiên bản của một DLL nhất định được sao chép vào thư mục obj? Trong trường hợp của tôi, nếu dự án vai trò công nhân đề cập đến v4.3.1 của System.Runtime, tại sao dự án Cloud Service lại sao chép một phiên bản DLL khác vào thư mục obj của nó? –

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