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 및 기타 캐시를 배치합니다.