답변:
다른 답변에서 누락 된 정보가 있습니다 (적어도 Eclipse와 같은 다른 IDE에서 온 사람들에게는). 솔루션이 프로젝트의 컨테이너라고 말하는 것은 문제의 일부일뿐입니다. VS 프로젝트의 개념적 특징 ( '세분성'을 결정하는 요소)은 하나의 프로젝트가 일반적으로 실행 파일 또는 라이브러리 (dll) 하나의 출력을 생성 한다는 것 입니다. 따라서 관련 코드를 사용하는 실행 파일 3 개를 코딩하려는 경우 하나의 솔루션과 최소 3 개의 프로젝트를 만들게됩니다.
Visual Studio가 상황을 더 혼란스럽게 만드는 것은 도움이되지 않습니다. "새 프로젝트"는 실제로 프로젝트를 포함하는 새 솔루션을 생성합니다. "Open Project"는 실제로 하나 (또는 여러 개)의 프로젝트를 포함하는 솔루션을 엽니 다. (파일 메뉴에 "Open Project / Solution"이 표시되어 있지만 실제로는 솔루션을 여는 것입니다. 정확한 "Close Solution"만있는 "Close Project"는 없습니다.
따라서 VS에서는 항상 솔루션 내에서 작업합니다. 많은 솔루션에는 하나의 프로젝트 만 포함되어 있으며 새로운 개발자는이를 동일한 것으로 생각할 가능성이 높습니다. 그러나 다른 프로젝트를 솔루션에 추가 할 수 있습니다.
누군가 여기까지 아래로 스크롤하기로 결정한 경우를 대비하여 MS 문서 가 차이점을 설명하는 데 꽤 잘 했다고 생각했습니다 . 여기에 관련 비트를 붙여넣고 다시 표현했습니다.
Visual Studio에서 앱, 애플리케이션, 웹 사이트, 웹 앱, 스크립트, 플러그인 등을 만들 때 프로젝트로 시작합니다. 논리적 의미에서 프로젝트에는 모든 소스 코드 파일, 아이콘, 이미지, 데이터 파일 및 실행 가능한 프로그램이나 웹 사이트로 컴파일 될 기타 모든 것이 포함되거나 컴파일을 수행하기 위해 필요합니다. 또한 프로젝트에는 프로그램이 통신 할 다양한 서비스 또는 구성 요소에 필요할 수있는 모든 컴파일러 설정 및 기타 구성 파일이 포함됩니다.
원하지 않는 경우 솔루션이나 프로젝트를 사용할 필요가 없습니다. Visual Studio에서 파일을 열고 코드 편집을 시작할 수 있습니다.
문자 그대로의 의미에서, 프로젝트는 (XML 파일입니다
.vbproj
,.csproj
,.vcxproj
) 모든 항목에 대한 경로와 함께 가상 폴더 계층 구조를 정의하는 그것을 모든 빌드 설정 "할 수 있습니다."Visual Studio에서 프로젝트 파일은 솔루션 탐색기에서 프로젝트 콘텐츠 및 설정을 표시하는 데 사용됩니다. 프로젝트를 컴파일 할 때 MSBuild 엔진은 프로젝트 파일을 사용하여 실행 파일을 만듭니다. 다른 종류의 출력을 생성하도록 프로젝트를 사용자 정의 할 수도 있습니다.
프로젝트는 하나 이상의 프로젝트, 빌드 정보, Visual Studio 창 설정 및 프로젝트와 연결되지 않은 기타 파일을 포함 할 수있는 솔루션 내에 논리적 의미와 파일 시스템에 포함됩니다. 문자 그대로의 의미에서 솔루션은 고유 한 형식을 가진 텍스트 파일입니다. 일반적으로 수작업으로 편집 할 수 없습니다.
솔루션에는 .suo
프로젝트에서 작업 한 각 사용자에 대한 설정, 기본 설정 및 구성 정보를 저장 하는 관련 파일이 있습니다.
솔루션은 Visual Studio에서 하나 이상의 관련 프로젝트를 구성하는 데 사용하는 컨테이너입니다. Visual Studio에서 솔루션을 열면 포함 된 모든 프로젝트가 자동으로로드됩니다.
Visual Studio에서 새 프로젝트를 만들 때 이미 열려있는 솔루션이없는 경우 프로젝트를 수용 할 솔루션이 자동으로 생성됩니다.
솔루션의 다른 프로젝트에 대한 프로젝트 종속성을 설정할 수 있습니다. 종속 프로젝트는 종속 프로젝트가 빌드 된 후에 빌드됩니다.
자세한 내용은 https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions를 참조 하십시오.
Eclipse 배경 인 경우 프로젝트 경로를 빌드하고 다른 프로젝트에 대한 종속성을 추가하거나 외부 jar를 추가 할 수 있습니다. VS에서는 모든 관련 프로젝트가 함께 그룹화되는 솔루션이라는 단일 컨테이너에서이를 수행 할 수 있습니다.
예 : xamrin에서 빌드 및 Android 및 iOS 앱을 사용한다고 가정 해 보겠습니다. 별도의 프로젝트에 들어갈 수있는 몇 가지 공통 코드와 리소스가있을 수 있으며 Android 및 iOS 프로젝트는이 공통 코드 프로젝트에 의존 할 수 있습니다. 또한 이러한 프로젝트 등을 테스트하는 프로젝트를 가질 수 있습니다.