etc./StackOverFlow

Visual Studio에서 솔루션 빌드, 솔루션 다시 빌드 및 솔루션 정리의 차이점은 무엇입니까?

청렴결백한 만능 재주꾼 2023. 5. 4. 22:14
반응형

질문자 :Fawa


Visual Studio에서 솔루션 빌드, 솔루션 다시 빌드 및 솔루션 정리의 차이점은 무엇입니까?

이들 각각을 사용하는 적절한 시기는 언제입니까?



  • 빌드 솔루션 은 증분 빌드를 수행합니다. 프로젝트를 다시 빌드할 필요 가 없다고 생각하면 수행하지 않습니다. 변경되지 않은 경우 프로젝트의 부분적으로 빌드된 비트를 사용할 수도 있습니다(얼마나 걸리는지 모르겠습니다)
  • 솔루션 재 구축은 이전에 수행한 작업을 무시하고 처음부터 솔루션을 정리한 다음 빌드합니다. 이것과 "Clean, after Build"의 차이점은 Rebuild가 모든 프로젝트를 정리한 다음 빌드하는 것이 아니라 각 프로젝트를 한 번에 하나씩 정리하고 빌드한다는 것입니다.
  • 깨끗한 솔루션 은 이전 빌드에서 빌드 아티팩트를 제거합니다. 빌드 대상 디렉토리(bin 및 obj)에 다른 파일이 있는 경우 제거되지 않을 수 있지만 실제 빌드 아티팩트는 제거됩니다. 나는 이것에 대한 행동이 다양하다는 것을 보았지만 때로는 상당히 철저하게 삭제하고 때로는 그렇지 않습니다.

(링크는 devenv.exe 명령줄 스위치에 대한 것이지만 메뉴 항목과 동일합니다.)


Jon Skeet

빌드 솔루션: 변경된 코드 파일(DLL 및 EXE)을 컴파일합니다.

Rebuild: 컴파일된 모든 파일을 삭제하고 코드 변경 여부에 관계없이 다시 컴파일합니다.

깨끗한 솔루션: 컴파일된 모든 파일(DLL 및 EXE 파일)을 삭제합니다.

이 YouTube 비디오( Visual Studio Build vs. Rebuild vs. Clean (C# 인터뷰 질문과 답변) )를 볼 수 있습니다. 여기에서 차이점을 보여주고 아래는 동일한 내용을 더 자세히 분석하는 데 도움이 되는 시각적 표현입니다.

빌드 대 재구축

Rebuild vs. (Clean + Build)의 차이점은 이것에 대해서도 약간의 혼란이 있는 것 같기 때문입니다.

차이점은 모든 프로젝트에서 빌드 및 정리 순서가 발생하는 방식입니다. 솔루션에 "proj1"과 "proj2"라는 두 개의 프로젝트가 있다고 가정해 보겠습니다. 다시 빌드하면 "proj1"이 걸리고 "proj1"에 대해 컴파일된 파일을 정리(삭제)하고 빌드합니다. 그런 다음 두 번째 프로젝트 "proj2"를 사용하고 "proj2"에 대해 컴파일된 파일을 정리하고 "proj2"를 컴파일합니다.

그러나 "clean" 및 build"를 수행하면 먼저 "proj1" 및 "proj2"에 대해 컴파일된 모든 파일을 삭제한 다음 "proj1"을 먼저 빌드하고 "proj2"를 빌드합니다.

재건 대 청소


Shivprasad Koirala

이 링크 에서 가져옴:

Build는 마지막 빌드 이후 변경된 소스 파일만 컴파일하여 링크하는 것을 의미하고 Rebuild는 변경 여부에 관계없이 모든 소스 파일을 컴파일하고 링크하는 것을 의미합니다. 빌드는 일반적인 작업이며 더 빠릅니다. 때때로 프로젝트 대상 구성 요소의 버전이 동기화되지 않을 수 있으며 빌드를 성공시키려면 다시 빌드해야 합니다. 실제로는 청소할 필요가 없습니다.


Matthew Jones

솔루션 빌드 - 파일이 변경된 어셈블리를 빌드합니다. 어셈블리에 변경 사항이 없으면 다시 빌드되지 않습니다. 또한 중간 파일을 삭제하지 않습니다.

가장 일반적으로 사용됩니다.

솔루션 재구축 - 변경 사항에 관계없이 모든 어셈블리를 재구축하지만 중간 파일은 남깁니다.

Visual Studio가 최신 어셈블리에 변경 사항을 통합하지 않은 것을 발견할 때 사용됩니다. 때때로 Visual Studio는 실수를 합니다.

Clean Solution - 모든 중간 파일을 삭제합니다.

다른 모든 것이 실패하고 모든 것을 정리하고 새로 시작해야 할 때 사용됩니다.


Justin Niessner

Rebuild는 Clean을 먼저 수행한 다음 Build를 수행하는 것으로 생각합니다. 아마도 내가 잘못 ... 댓글?


Ken Richards

빌드 솔루션은 변경된 솔루션의 모든 프로젝트를 빌드합니다. Rebuild는 무엇이든 상관없이 모든 프로젝트를 빌드하고 깨끗한 솔루션은 다음 빌드가 완료되도록 모든 임시 파일을 제거합니다.


Steven Evers

솔루션 빌드 - 빌드 솔루션은 파일이 변경된 프로젝트 수를 빌드하여 애플리케이션을 빌드합니다. 그리고 기존 바이너리 파일을 지우지 않고 bin 또는 obj 폴더에서 업데이트된 어셈블리만 교체합니다.

솔루션 재구축 - 솔루션 재구축은 솔루션에서 사용할 수 있는 모든 프로젝트를 빌드하여 전체 응용 프로그램을 빌드하고 정리합니다. 빌드하기 전에 bin 및 obj 폴더에서 모든 바이너리 파일을 지웁니다.

클린 솔루션 - 클린 솔루션은 bin 및 obj 폴더에서 모든 바이너리 파일을 지우는 것입니다.


Sabaridass R

사람들이 빠뜨리고 있다고 생각하는 한 가지 중요한 점은 빌드 및 정리가 모두 프로젝트/솔루션에 대한 Visual Studio의 지식을 기반으로 수행되는 작업이라는 것입니다. Clean이 작동하지 않거나 남은 파일을 남기거나 신뢰할 수 없다고 불평하는 것을 많이 봅니다. 실제로 신뢰할 수 없다고 말하는 이유가 실제로 더 신뢰할 수 있습니다.

정리는 Visual Studio 또는 컴파일러 자체에서 실제로 만든 파일 및/또는 디렉터리만 제거(정리)합니다. 자신의 파일을 복사하거나 외부 도구 또는 소스에서 생성된 파일/폴더 구조를 복사하는 경우 Visual Studio는 "그 존재를 인식하지 못하므로" 건드려서는 안 됩니다.

Clean 작업이 기본적으로 "del *.*"을 수행했는지 상상할 수 있습니까? 이것은 치명적일 수 있습니다.

Build 는 변경되거나 필요한 프로젝트에서 컴파일을 수행합니다.

Rebuild 는 변경 사항이나 필요한 사항에 관계없이 컴파일을 수행합니다.

Clean 은 과거에 생성한 파일/폴더를 제거하지만 처음에는 아무 관련이 없는 파일을 남깁니다.

이것이 조금 더 자세히 설명되고 도움이 되기를 바랍니다.


Chase

빈 솔루션 BuildRebuildClean 과 세 가지 클래스 라이브러리 Models , Repository , Notification 있습니다.

Notification 클래스 라이브러리에서 ModelsRepository 를 사용합니다.

그 다음에:

  • 빌드 솔루션 Incremental 빌드 및 변경된 파일만 컴파일합니다. 어셈블리에 변경 사항이 없으면 다시 빌드되지 않습니다. 또한 중간 파일은 삭제하지 않습니다. Models 라이브러리 프로젝트에서 일부 코드를 수정하면 솔루션을 빌드합니다. 아래 스크린샷에서 DLL의 타임스탬프를 참조하십시오. EXE는 ModelsNotification 라이브러리에서 업데이트됩니다.

여기에 이미지 설명 입력

  • 솔루션 재구축 컴파일된 모든 파일을 삭제하고 이전에 수행된 모든 작업을 무시하고 변경 사항에 관계없이 모두 컴파일합니다. BuildRebuildClean 마우스 오른쪽 버튼으로 클릭합니다. 그것이 하는 일은 모든 어셈블리, EXE 및 참조 파일을 삭제하여 다시 컴파일하는 것입니다.

여기에 이미지 설명 입력

  • Clean Solution bin/obj 디렉토리에서 모든 컴파일된 중간 파일(예: EXE 및 DLL)을 삭제합니다.

여기에 이미지 설명 입력


Reza Jenabi

내가 아는 것은 Clean이 "깨끗한" 작업을 수행하지 않는다는 것입니다. 솔루션을 청소하는 경우 obj 및 bin 파일/폴더를 삭제하여 소스를 새로 체크아웃하는 것처럼 빌드할 것으로 예상합니다. 내 경험에 따르면 Clean and Build 또는 Rebuild가 여전히 컴파일 되는 것으로 알려진 소스에서 이상한 오류를 생성하고 필요한 것은 bin/obj 폴더를 수동으로 삭제하는 것입니다. 그러면 빌드됩니다.


steve

이것은 "솔루션 빌드" 옵션에만 해당됩니다.

Visual Studio가 솔루션을 실제로 정리할 수 없다는 사실에 완전히 질려서 이 작업을 수행할 이 작은 도구를 작성했습니다.

먼저 VS에서 솔루션을 닫고 Windows 탐색기에서 해당 폴더를 이 앱이나 아이콘으로 끌어다 놓습니다. 창 하단의 설정에 따라 추가 항목을 제거할 수도 있습니다. 이는 솔루션을 GitHub에 수동으로 업로드하거나 다른 사람과 공유하려는 경우 도움이 됩니다.

여기에 이미지 설명 입력

간단히 말해서 모든 "디버그" 폴더, Intellisense 및 VS에서 다시 작성할 수 있는 기타 캐시를 휴지통에 넣습니다.


ahmd0

빌드 솔루션은 솔루션에서 변경된 프로젝트만 빌드하고 변경되지 않은 어셈블리에는 영향을 미치지 않습니다.

ReBuild는 먼저 솔루션의 모든 어셈블리를 정리한 다음 변경 사항에 관계없이 전체 솔루션을 빌드합니다.

청소, 단순히 솔루션을 청소합니다.


yashashwi

Clean 은 bin/Debug 폴더의 아티팩트를 정리합니다. bin/Debug 폴더의 모든 파일을 삭제하는 것을 의미합니다.

Build 는 bin/Debug 폴더의 아티팩트를 확인하고 필요한 경우 아티팩트를 생성합니다(빌드 시간 오류를 확인하는 동안).

Rebuild = Clean + 한 번에 Build . 이것은 먼저 bin/Debug 폴더의 모든 파일을 삭제한 다음 bin/Debug 폴더에 아티팩트를 다시 생성합니다.

bin/Debug(또는 Release) 폴더를 열고 관찰한 다음 프로젝트를 정리, 빌드 및 다시 빌드하여 이러한 작업을 확인할 수 있습니다.


Tajveer Singh Nijjar

출처 : http:www.stackoverflow.com/questions/3095901/difference-between-build-solution-rebuild-solution-and-clean-solution-in-visua

반응형