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 là gì?
Khi nào là thời điểm thích hợp để sử dụng mỗi một trong số này?
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 là gì?
Khi nào là thời điểm thích hợp để sử dụng mỗi một trong số này?
Câu trả lời:
(Các liên kết đến các chuyển đổi dòng lệnh devenv.exe , nhưng chúng thực hiện tương tự như các mục menu.)
.gitignore
tệp tốt . Nhưng theo câu trả lời, Clean không phải lúc nào cũng thực hiện một công việc đặc biệt kỹ lưỡng theo kinh nghiệm của tôi.
Xây dựng giải pháp: Biên dịch các tệp mã (DLL và EXE) đã được thay đổi.
Rebuild: Xóa tất cả các tệp đã biên dịch và biên dịch lại chúng bất kể mã có thay đổi hay không.
Giải pháp sạch: Xóa tất cả các tệp đã biên dịch (tệp DLL và EXE).
Bạn có thể xem video YouTube này ( Visual Studio Build vs Rebuild vs. Clean (câu hỏi phỏng vấn C # có câu trả lời) ) trong đó tôi đã chứng minh sự khác biệt và dưới đây là các biểu diễn trực quan sẽ giúp bạn phân tích chi tiết hơn.
Sự khác biệt giữa Rebuild so với (Clean + Build), vì dường như cũng có một số nhầm lẫn xung quanh điều này:
Sự khác biệt là cách thức xây dựng và trình tự sạch xảy ra cho mọi dự án. Giả sử giải pháp của bạn có hai dự án, đó là pro proj1 và và pro pro22. Nếu bạn xây dựng lại, nó sẽ lấy ra pro proj1, dọn dẹp (xóa) các tập tin đã biên dịch cho ra pro proj1 và xây dựng nó. Sau đó, nó sẽ lấy dự án thứ hai là pro proj2, làm sạch các tập tin đã được biên dịch cho phần mềm proj2 và biên dịch trực tuyến.
Nhưng nếu bạn thực hiện một trò chơi dọn dẹp và xây dựng, thì trước tiên, nó sẽ xóa tất cả các tập tin đã biên dịch cho phần mềm proj1 và và proj2 và sau đó nó sẽ xây dựng một trò chơi đầu tiên sau đó là trò chơi tiên tiến.
Lấy từ liên kết này :
Build có nghĩa là biên dịch và chỉ liên kết các tệp nguồn đã thay đổi kể từ lần xây dựng trước, trong khi Rebuild có nghĩa là biên dịch và liên kết tất cả các tệp nguồn bất kể chúng có thay đổi hay không. Xây dựng là điều bình thường để làm và nhanh hơn. Đôi khi các phiên bản của các thành phần mục tiêu dự án có thể không đồng bộ hóa và xây dựng lại là cần thiết để xây dựng thành công. Trong thực tế, bạn không bao giờ cần phải làm sạch.
Build Solution - Xây dựng bất kỳ hội đồng nào đã thay đổi tập tin. Nếu một hội đồng không có thay đổi, nó sẽ không được xây dựng lại. Cũng sẽ không xóa bất kỳ tập tin trung gian.
Được sử dụng phổ biến nhất.
Giải pháp xây dựng lại - Xây dựng lại tất cả các hội đồng bất kể thay đổi nhưng để lại các tệp trung gian.
Được sử dụng khi bạn nhận thấy rằng Visual Studio không kết hợp các thay đổi của bạn trong phiên bản mới nhất. Đôi khi Visual Studio không mắc lỗi.
Giải pháp sạch - Xóa tất cả các tệp trung gian.
Được sử dụng khi tất cả những thứ khác không thành công và bạn cần dọn dẹp mọi thứ và bắt đầu làm mới.
Tôi chỉ nghĩ về Rebuild khi thực hiện Clean trước sau đó là Build. Có lẽ tôi sai ... ý kiến?
file reference
thay vì vì project reference
vậy, lệnh xây dựng dự án không nhận ra rằng nó phải xây dựng một dự án nhất định trước một dự án khác và lắp ráp không tồn tại ở nơi cần có trong thời gian xây dựng?
Build Solution - Xây dựng bất kỳ hội đồng nào đã thay đổi tập tin. Nếu một hội đồng không có thay đổi, nó sẽ không được xây dựng lại. Cũng sẽ không xóa bất kỳ tập tin trung gian.
Giải pháp xây dựng lại sẽ làm sạch và sau đó xây dựng giải pháp từ đầu, bỏ qua mọi thứ đã làm trước đó
Clean Solution sẽ xóa tất cả các tệp đã biên dịch (tức là của EXE và DLL) khỏi thư mục bin / obj.
Xây dựng giải pháp sẽ xây dựng bất kỳ dự án trong giải pháp đã thay đổi. Rebuild xây dựng tất cả các dự án bất kể là gì, giải pháp sạch sẽ loại bỏ tất cả các tệp tạm thời đảm bảo rằng bản dựng tiếp theo hoàn tất.
Xây dựng giải pháp - Giải pháp xây dựng sẽ xây dựng ứng dụng của bạn với việc xây dựng số lượng dự án đang có bất kỳ thay đổi tệp nào. Và nó không xóa bất kỳ tệp nhị phân hiện có và chỉ thay thế các tập hợp được cập nhật trong thư mục bin hoặc obj.
Giải pháp xây dựng lại - Giải pháp xây dựng lại sẽ xây dựng toàn bộ ứng dụng của bạn với việc xây dựng tất cả các dự án có sẵn trong giải pháp của bạn với việc làm sạch chúng. Trước khi xây dựng, nó xóa tất cả các tệp nhị phân từ thư mục bin và obj.
Giải pháp sạch - Giải pháp sạch chỉ là xóa tất cả các tệp nhị phân khỏi thư mục bin và obj.
Xây dựng giải pháp
Điều này sẽ thực hiện một bản dựng gia tăng. Nói cách khác, nó sẽ chỉ xây dựng các tệp mã đã thay đổi. Nếu họ không thay đổi, các tập tin sẽ không được chạm vào.
Xây dựng lại giải pháp
Điều này sẽ xóa tất cả các tệp hiện được biên dịch (ví dụ: exe và DLL) và sẽ xây dựng mọi thứ từ đầu, bất kể có thay đổi mã trong tệp hay không.
Thực đơn giải pháp sạch
Menu này sẽ xóa tất cả các tệp đã biên dịch (tức là của EXE và DLL) khỏi thư mục bin / obj.
Tái tạo = Làm sạch + Xây dựng
Một điều quan trọng mà tôi nghĩ mọi người đang bỏ qua là Xây dựng và Làm sạch là cả hai nhiệm vụ được thực hiện dựa trên kiến thức về Dự án / Giải pháp của Visual Studio. Tôi thấy rất nhiều phàn nàn rằng Clean không hoạt động hoặc để lại các tệp còn sót lại hoặc không đáng tin, trong khi thực tế, những lý do bạn nói nó không đáng tin thực sự khiến nó đáng tin hơn.
Clean sẽ chỉ xóa (sạch) các tệp và / hoặc thư mục mà Visual Studio hoặc trình biên dịch thực tế đã tạo. Nếu bạn sao chép các tệp hoặc cấu trúc tệp / thư mục của riêng bạn được tạo từ một công cụ hoặc nguồn bên ngoài, thì Visual Studio không "biết chúng tồn tại" và do đó, không nên chạm vào chúng.
Bạn có thể tưởng tượng nếu hoạt động Clean về cơ bản thực hiện một "del *. *" Không? Điều này có thể là thảm họa.
Build thực hiện một biên dịch trên các dự án thay đổi hoặc cần thiết.
Rebuild thực hiện một biên dịch bất kể thay đổi hoặc những gì cần thiết.
Clean sẽ xóa các tệp / thư mục mà nó đã tạo trong quá khứ, nhưng ban đầu để lại mọi thứ mà nó không có gì để làm.
Tôi hy vọng điều này xây dựng một chút và giúp đỡ.
Tôi có aa dung dịch trắng BuildRebuildClean
và ba thư viện lớp Models
, Repository
, Notification
.
Tôi sử dụng Models
và Repository
trong Notification
thư viện lớp.
Sau đó:
Models
dự án thư viện, thì giải pháp BUILD. Trong ảnh chụp màn hình bên dưới, hãy tham khảo dấu thời gian của DLL, EXE được cập nhật trong Models
và Notification
thư viện.BuildRebuildClean
. Những gì nó làm là xóa tất cả các tập hợp, EXE và các tệp được giới thiệu để biên dịch lại.Tất cả những gì tôi biết là Clean không thực hiện những gì "làm sạch" đã từng làm - nếu tôi Làm sạch một giải pháp, tôi sẽ mong đợi nó xóa các tập tin / thư mục obj và bin mà nó xây dựng giống như là một kiểm tra mới về nguồn. Theo kinh nghiệm của tôi, mặc dù tôi thường thấy những lần mà Clean and Build hoặc Rebuild vẫn tạo ra các lỗi lạ trên nguồn được biết để biên dịch và những gì được yêu cầu là xóa thủ công các thư mục bin / obj, sau đó nó sẽ xây dựng.
Xây dựng giải pháp chỉ xây dựng những dự án đã thay đổi trong giải pháp và không ảnh hưởng đến các hội đồng không thay đổi,
ReBuild trước tiên làm sạch, tất cả các hội đồng từ giải pháp và sau đó xây dựng toàn bộ giải pháp bất kể thay đổi được thực hiện.
Làm sạch, đơn giản là làm sạch dung dịch.
Điều này chỉ liên quan đến tùy chọn "Build Solution".
Tôi đã hoàn toàn chán ngấy với việc Visual Studio không có khả năng làm sạch các giải pháp và đã viết công cụ nhỏ này sẽ làm điều đó cho bạn.
Trước tiên, đóng giải pháp của bạn trong VS và kéo thư mục của nó từ Windows Explorer vào ứng dụng này hoặc vào biểu tượng của nó. Tùy thuộc vào cài đặt ở dưới cùng của cửa sổ, nó cũng có thể xóa nội dung bổ sung, điều này sẽ giúp ích nếu bạn cố tải lên giải pháp của mình lên GitHub hoặc chia sẻ với người khác:
Tóm lại, nó sẽ đặt tất cả các thư mục "Gỡ lỗi", Intellisense và các bộ nhớ cache khác có thể được xây dựng lại bởi VS vào Thùng rác cho bạn.