DRY: Rebuild = Clean + Xây dựng cho từng dự án.
Bản dựng sẽ không xóa các kết quả đầu ra xây dựng trước đó. Việc xây dựng lại sẽ xóa chúng và xây dựng lại (một dự án tại một thời điểm nếu bạn đang ở trong một giải pháp: xoá proj1 \ bin \ Debug, xây dựng proj1, xoá proj2 \ bin \ Debug ...).
Trường hợp chính khi tôi thực hiện xây dựng lại (hoặc xây dựng sạch) là khi tôi cần cập nhật giải pháp phụ thuộc thứ ba của mình. Hãy xem cây thư mục sau:
SOLUTION
|__Dependencies
|__PROJ_1
|__bin
|__obj
|__(code)
|__PROJ_2
|__bin
|__obj
|__(code)
Nếu tôi thay đổi dlls của tôi trong Dependencies và không làm một xây dựng lại, VS (và MSBuild) vẫn sẽ sử dụng phiên bản dll trước đó là trong PROJ_N \ bin \ Debug (hoặc trong bin \ Release), vì thứ tự tra cứu phụ thuộc (xem http://www.beefycode.com/post/Resolving-Binary-References-in-MSBuild.aspx):
- tập tin từ dự án hiện tại - chỉ định bởi
{CandidateAssemblyFiles}
$(ReferencePath)
- tài sản con đường tham khảo, mà xuất phát từ tập tin .USER
.
- Đường dẫn từ chính mục được tham chiếu, được biểu thị bằng
{HintPathFromItem}
.
...
Các dll trong thư mục bin đi trong trường hợp tra cứu đầu tiên, dll trong thư mục Dependencies đi kèm trong trường hợp thứ hai ...
Trong trường hợp này tôi sẽ làm sạch (Gỡ lỗi), làm sạch (Release) và sau đó một xây dựng để loại bỏ tất cả các phiên bản trước đó trong thư mục bin. Tôi có thể hơi quá mức và việc xây dựng lại có thể là đủ nhưng tôi không chắc chắn vì các dll nằm trong thư mục Debug và trong thư mục Release ...
Nguồn
2010-11-15 09:24:09
Nói cách khác, 'Rebuild' =' Clean' + ' Xây dựng' – abatishchev
Hầu hết thời gian và cho một dự án duy nhất, vâng. Xem http://stackoverflow.com/questions/1247457/difference-between-rebuild-and-clean-build-in-visual-studio-2008. –
Trong Microsoft.Common.Targets của bạn, bạn có thể thấy rằng đối với một dự án Rebuild = BeforeRebuild; Dọn dẹp; $ (_ ProjectDefaultTargets); AfterRebuild; –