Visual Studio에서 Rebuild와 Clean + Build의 차이점
Visual Studio 2008에서 Rebuild 와 Clean + Build 를 수행하는 것의 차이점은 무엇입니까 ? 되어 청소 +의 빌드 다른는 일을 청소 + 재 구축을 ?
재 구축 = 정리 + 빌드 (일반적으로)
주목할만한 세부 사항 :
다중 프로젝트 솔루션의 경우 "리빌드 솔루션"은 각 프로젝트에 대해 "정리"와 "빌드"를 수행합니다 (병렬로 가능). "클린 솔루션"다음에 "빌드 솔루션"이 먼저 모든 프로젝트 (병렬로)를 정리 한 다음 모든 프로젝트 (병렬로)를 작성합니다. 이벤트 순서의 차이는 프로젝트 간 종속성이 발생할 때 중요해질 수 있습니다.
세 가지 동작은 모두 MSBuild 대상에 해당합니다. 따라서 프로젝트는 다시 빌드 조치를 대체하여 완전히 다른 것을 수행 할 수 있습니다.
Earl은 Rebuild = Clean + Build 시간의 99 %에 해당합니다.
그러나 그것들이 동일하다는 보장은 없습니다. 3 가지 동작 (다시 빌드, 빌드, 정리)은 다른 MSBuild 대상을 나타냅니다. 각각은 프로젝트 파일로 재정 의하여 사용자 지정 작업을 수행 할 수 있습니다. 따라서 clean + build를 시작하기 전에 여러 작업을 수행하여 rebuild를 재정의하거나 완전히 제거하는 것이 전적으로 가능합니다.
코너링 사례는 많지만 의견 토론으로 인해 지적되었습니다.
1 프로젝트 당, 프로젝트 재 구축 = (클린 프로젝트 + 프로젝트 빌드).
2 솔루션 별, Sln 재 구축 = 각 프로젝트 (클린 프로젝트 + 빌드 프로젝트)! = Clean Sln + Build Sln
Sln이 있고 proj1, proj2 및 proj3을 포함한다고 가정하십시오.
Sln 재 구축 = (Clean proj1-> Build Proj1) + (Clean proj2-> Build Proj2) + (Clean proj3-> Build Proj3)
클린 Sln + 빌드 Sln = (클린 proj1 + 클린 proj2 + 클린 proj3)-> (빌드 proj1 + 빌드 proj2 + 빌드 proj3)
->는 직렬을 의미하고 +는 동시를 의미
따라서 프로젝트 종속성을 올바르게 구성하지 않은 상태에서 많은 코드 변경 사항을 제출할 가능성이 있습니다. Sbuild 재 빌드는 모든 빌드가 완전히 정리 된 후에는 모든 빌드가 보장되지 않기 때문에 일부 라이브러리가 오래된 라이브러리에 연결되도록합니다. ( 이 경우 Clean Sln + Build Sln은 링크 오류를 발생시키고 이상한 동작을하는 앱을 제공하는 대신 즉시 알려줍니다.)
에서 http://www.cs.tufts.edu/r/graphics/resources/vs_getting_started/vs_getting_started.htm , (그냥 인터넷 검색)
빌드는 마지막 빌드 이후에 변경된 소스 파일 만 컴파일하고 링크하는 것을 의미하는 반면, Rebuild는 변경 여부에 관계없이 모든 소스 파일을 컴파일하고 링크하는 것을 의미합니다. 빌드는 정상적인 작업이며 더 빠릅니다. 때로는 프로젝트 대상 구성 요소의 버전이 동기화되지 않을 수 있으며 빌드를 성공적으로 수행하기 위해 다시 빌드해야합니다. 실제로는 청소할 필요가 없습니다.
솔루션 빌드 또는 재 구축은 솔루션의 모든 프로젝트를 빌드 또는 재 구축하는 반면, 빌드 또는 재 구축은 위의 스크린 샷에서 "hello"시작 프로젝트를 빌드 또는 재 구축합니다. 시작 프로젝트를 설정하려면 솔루션 탐색기 탭에서 원하는 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택하십시오. 프로젝트 이름이 굵게 표시됩니다. 과제 솔루션에는 일반적으로 하나의 프로젝트 만 있기 때문에 빌드 또는 재구성 솔루션은 사실상 빌드 또는 재구성과 동일합니다.
컴파일은 현재 편집중인 소스 파일을 컴파일합니다. 나머지 소스 파일이 전체 프로젝트를 성공적으로 빌드하지 못하게하는 불완전한 상태 일 때 오류를 신속하게 확인하는 데 유용합니다. Ctrl-F7은 컴파일의 단축키입니다.
에서 이 블로그 게시물 저자로 연결 이 질문에 대한 코멘트 :
실제로 아니요 !!! 그들은 평등하지 않습니다.
차이점은 프로젝트가 깨끗하고 구축되는 순서입니다. 솔루션에 두 개의 프로젝트가 있다고 가정 해 봅시다. 정리 후 빌드는 두 프로젝트 모두에서 정리를 수행 한 후 다시 빌드하는 동안 빌드 A가 개별적으로 발생합니다. 프로젝트 A는 정리 및 빌드 한 후 빌드 B가 정리 된 후 빌드됩니다.
'Programing' 카테고리의 다른 글
Haskell / GHC의`forall` 키워드는 무엇을합니까? (0) | 2020.03.19 |
---|---|
인수가없는 Python Argparse 명령 행 플래그 (0) | 2020.03.19 |
세트에서 요소 얻기 (0) | 2020.03.19 |
뷰에서 여러 모델 (0) | 2020.03.19 |
결과가 비어있을 때 LINQ는 무엇을 반환합니까? (0) | 2020.03.19 |