답변:
obj
폴더는 보유 목적, 또는 중간, 파일을 아직 연결되지 않은 바이너리 파일을 컴파일된다. 그것들은 본질적으로 최종 실행 파일을 생성하기 위해 결합되는 조각입니다. 컴파일러는 각 소스 파일에 대해 하나의 객체 파일을 생성하며 해당 파일은 obj
폴더에 저장됩니다.
이 bin
폴더에는 응용 프로그램이나 라이브러리의 실제 실행 코드 인 이진 파일 이 들어 있습니다.
이러한 각 폴더는 프로젝트의 빌드 구성에 해당하는 폴더 Debug
와 Release
폴더 로 세분화됩니다 . 위에서 설명한 두 가지 유형의 파일은 수행하는 빌드 유형에 따라 적절한 폴더에 저장됩니다. 이를 통해 디버깅 기호로 빌드 된 실행 파일과 최적화가 활성화되어 릴리스 준비가 된 실행 파일을 쉽게 결정할 수 있습니다.
프로젝트 속성에서 컴파일하는 동안 Visual Studio가 실행 파일을 출력하는 위치를 변경할 수 있습니다. 빌드 구성에 대한 이름과 선택한 옵션을 변경할 수도 있습니다.
obj
만 포함 합니까 ? 내 경험상 여기에는 모든 것이 포함되어 있으며 최종 빌드 단계에서 "최종 세트"의 일부인 파일이에 복사 됩니다 . bin
C # bin과 obj 폴더 의 차이점을 보여주는이 YouTube 비디오를 보도록 권합니다. 증분 / 조건부 컴파일의 이점을 얻는 방법을 설명하는 .
C # 컴파일은 2 단계 프로세스입니다. 자세한 내용은 아래 다이어그램을 참조하십시오.
bin과 obj 디렉토리를 비교하면 "bin"에 단일 단위가 있고 개별 컴파일 된 코드 파일이 있으므로 "obj"디렉토리에 더 많은 파일이 있습니다.
obj
디렉토리는 빌드하는 동안 컴파일러 또는 빌드 시스템에서 생성되는 중간 오브젝트 파일 및 기타 임시 데이터 파일입니다. bin
디렉토리는 최종 출력 바이너리 (및 종속성 또는 기타 배포 파일)에 기록됩니다 디렉토리입니다.
원하는 경우 프로젝트 설정 내에서 두 가지 용도로 사용되는 실제 디렉토리를 변경할 수 있습니다.
setup
프로젝트를 사용하는 경우 주의하십시오 . Visual Studio 설치 프로젝트 Primary Output
는 obj
폴더가 아닌 폴더 에서 가져옵니다 .bin
.
폴더 어셈블리 msi
에서 빌드 후 절차를 수행 할 때 배포 된 응용 프로그램 파일이 실제로 난독 처리되지 않았거나 서명되지 않았으며 bin
폴더를 대상으로 obj
지정 해야한다는 사실을 발견하기 전에 오랫동안 난독 처리 및 설정에 서명 한 것으로 생각되는 응용 프로그램을 릴리스 했습니다. 대신 어셈블리.
이것은 직관적 인 imho와는 거리가 멀지 만 일반적인 setup
접근 방식은 Primary Output
프로젝트 를 사용하는 것이며 obj
폴더입니다. 누군가 가이 btw에 약간의 빛을 비출 수 있다면 그것을 좋아합니다.