Visual Studio에서 Build Solution, Rebuild Solution 및 Clean Solution의 차이점은 무엇입니까?
이들 각각을 사용하기에 적절한시기는 언제입니까?
Visual Studio에서 Build Solution, Rebuild Solution 및 Clean Solution의 차이점은 무엇입니까?
이들 각각을 사용하기에 적절한시기는 언제입니까?
답변:
링크는 devenv.exe 명령 행 스위치에 대한 것이지만 메뉴 항목과 동일합니다.
.gitignore파일 을 갖는 것이 더 간단 합니다. 그러나 대답에 따라 Clean은 항상 내 경험에서 특히 철저한 작업을 수행하지는 않습니다.
빌드 솔루션 : 변경된 코드 파일 (DLL 및 EXE)을 컴파일합니다.
Rebuild : 코드가 변경되었는지 여부에 관계없이 컴파일 된 모든 파일을 삭제하고 다시 컴파일합니다.
클린 솔루션 : 모든 컴파일 된 파일 (DLL 및 EXE 파일)을 삭제합니다.
차이점을 시연 한 아래의 YouTube 비디오 ( Visual Studio Build vs. Rebuild vs. Clean (C # 인터뷰 질문) )를 볼 수 있습니다. 아래는 시각적 표현으로,이를 자세히 분석하는 데 도움이됩니다.

Rebuild와 (Clean + Build)의 차이점은 다음과 같이 혼란 스러울 것 같습니다.
차이점은 모든 프로젝트에서 빌드 및 정리 시퀀스가 발생하는 방식입니다. 솔루션에“proj1”과“proj2”라는 두 개의 프로젝트가 있다고 가정 해 봅시다. 다시 빌드하는 경우 "proj1"이 필요하고 "proj1"에 대해 컴파일 된 파일을 정리 (삭제)하고 빌드하십시오. 그런 다음 두 번째 프로젝트 "proj2"가 필요하고 "proj2"에 대해 컴파일 된 파일을 정리하고 "proj2"를 컴파일합니다.
그러나 "clean"및 build "를 수행하면 먼저"proj1 "및"proj2 "에 대해 컴파일 된 모든 파일을 삭제 한 다음"proj1 "을 먼저 빌드 한 다음"proj2 "를 빌드합니다.

이 링크 에서 가져온 :
빌드는 마지막 빌드 이후에 변경된 소스 파일 만 컴파일하고 링크하는 것을 의미하는 반면, Rebuild는 변경 여부에 관계없이 모든 소스 파일을 컴파일하고 링크하는 것을 의미합니다. 빌드는 정상적인 작업이며 더 빠릅니다. 때로는 프로젝트 대상 구성 요소의 버전이 동기화되지 않을 수 있으며 빌드를 성공적으로 수행하기 위해 다시 빌드해야합니다. 실제로는 청소할 필요가 없습니다.
빌드 솔루션 -파일이 변경된 어셈블리를 빌드합니다. 어셈블리에 변경 사항이 없으면 다시 빌드되지 않습니다. 중간 파일도 삭제하지 않습니다.
가장 일반적으로 사용됩니다.
솔루션 재 구축 -변경 사항에 관계없이 모든 어셈블리를 재 구축 하지만 중간 파일은 남겨 둡니다.
Visual Studio가 변경 내용을 최신 어셈블리에 포함하지 않은 경우에 사용됩니다. 때때로 Visual Studio는 실수를합니다.
클린 솔루션 -모든 중간 파일을 삭제하십시오.
다른 모든 것이 실패하고 모든 것을 정리하고 새로 시작해야 할 때 사용됩니다.
Rebuild는 Clean을 먼저 수행 한 다음 Build를 수행하는 것으로 생각합니다. 아마도 내가 틀렸다 ... 코멘트?
file reference대신 프로젝트에 프로젝트를 추가 project reference하여 프로젝트 빌드 순서가 특정 프로젝트를 다른 프로젝트보다 먼저 빌드해야한다는 것을 인식하지 못했기 때문에 발생했을 수 있습니다. 짓다?
빌드 솔루션 – 파일이 변경된 어셈블리를 빌드합니다. 어셈블리에 변경 사항이 없으면 다시 빌드되지 않습니다. 중간 파일도 삭제하지 않습니다.
솔루션 을 다시 빌드하면 이전에 수행 한 모든 작업을 무시하고 처음부터 솔루션 을 정리하고 빌드합니다.
Clean Solution 은 bin / obj 디렉토리에서 컴파일 된 모든 파일 (예 : EXE 및 DLL)을 삭제합니다.
사람들이 빠뜨릴 것이라고 생각하는 가장 중요한 것은 Build and Clean이 Visual Studio의 프로젝트 / 솔루션에 대한 지식을 기반으로 수행되는 작업이라는 것입니다. Clean이 작동하지 않거나 남은 파일을 남기지 않거나 신뢰할 수 없다는 불만이 많습니다. 실제로 신뢰할 수 없다고 말하는 이유가 실제로 더 신뢰할 수 있습니다.
Clean은 Visual Studio 또는 컴파일러 자체에서 실제로 생성 한 파일 및 / 또는 디렉토리 만 제거 (정리)합니다. 자신의 파일 또는 파일 / 폴더 구조를 외부 도구 나 소스에서 복사하면 Visual Studio는 "그들이 존재한다는 것을 알지 못"하므로이를 만지지 않아야합니다.
Clean 작업이 기본적으로 "del *. *"를 수행했는지 상상할 수 있습니까? 이것은 치명적일 수 있습니다.
빌드 는 변경되었거나 필요한 프로젝트에서 컴파일을 수행합니다.
Rebuild 는 변경 또는 필요한 사항에 관계없이 컴파일을 수행합니다.
정리 는 과거에 만든 파일 / 폴더를 제거하지만 처음에는 관련이없는 항목은 남겨 둡니다.
나는 이것이 조금 정교하고 도움이되기를 바랍니다.
나는 AA 빈 솔루션이 BuildRebuildClean세 클래스 라이브러리를 Models, Repository, Notification.
내가 사용 Models하고 Repository있는 Notification클래스 라이브러리.
그때:
Models라이브러리 프로젝트 에서 일부 코드를 수정하면 BUILD 솔루션입니다. 아래 스크린 샷에서 DLL의 타임 스탬프, EXE 업데이트 Models및 Notification라이브러리를 참조하십시오.BuildRebuildClean. 그것이하는 일은 모든 어셈블리, EXE 및 참조 파일을 삭제하여 다시 컴파일하는 것입니다.내가 아는 전부는 Clean이 "clean clean"에 사용 된 작업을 수행하지 않는다는 것입니다. 솔루션을 청소하면 obj와 bin 파일 / 폴더가 삭제되어 소스가 새로 생성 된 것처럼 보일 것입니다. 필자의 경험에 따르면 정리 및 빌드 또는 재구성 이 컴파일 로 알려진 소스에서 여전히 이상한 오류를 생성 하고 bin / obj 폴더를 수동으로 삭제하는 것이 필요한 경우가 종종 있습니다.
빌드 솔루션은 솔루션에서 변경된 프로젝트 만 빌드하며 변경되지 않은 어셈블리에는 영향을 미치지 않습니다.
ReBuild는 먼저 솔루션에서 모든 어셈블리를 정리 한 다음 변경 사항에 관계없이 전체 솔루션을 빌드합니다.
깨끗하고 솔루션을 간단하게 청소합니다.
이것은 "빌드 솔루션"옵션에만 해당됩니다.
솔루션을 실제로 정리할 수없는 Visual Studio의 무능에 완전히 푹 빠져서이 작은 도구 를 작성 했습니다.
VS에서 솔루션을 먼저 닫고 폴더를 Windows 탐색기에서이 앱 또는 아이콘으로 드래그하십시오. 창 하단의 설정에 따라 추가 항목을 제거 할 수도 있습니다. 솔루션을 GitHub에 수동으로 업로드하거나 다른 사람과 공유하려는 경우 도움이됩니다.
간단히 말해 VS에서 휴지통으로 다시 작성할 수있는 모든 "디버그"폴더, Intellisense 및 기타 캐시를 배치합니다.