Visual Studio 프로젝트와 솔루션


답변:


70

솔루션은 프로젝트의 컨테이너이며 프로젝트 간의 종속성을 추적합니다.


128

다른 답변에서 누락 된 정보가 있습니다 (적어도 Eclipse와 같은 다른 IDE에서 온 사람들에게는). 솔루션이 프로젝트의 컨테이너라고 말하는 것은 문제의 일부일뿐입니다. VS 프로젝트의 개념적 특징 ( '세분성'을 결정하는 요소)은 하나의 프로젝트가 일반적으로 실행 파일 또는 라이브러리 (dll) 하나의 출력을 생성 한다는 입니다. 따라서 관련 코드를 사용하는 실행 파일 3 개를 코딩하려는 경우 하나의 솔루션과 최소 3 개의 프로젝트를 만들게됩니다.


2
자체적으로 어셈블리를 생성하지 않고도 포함될 수있는 공유 코드 프로젝트를 잊지 마십시오.
AyCe

43

은유를 생각해 보니 ..

솔루션은 집과 같고 프로젝트는 방과 같습니다. 각 방은 기능의 일부를 제공하는 반면 방의 컨테이너 인 집은 방을 함께 연결하고 적절하게 구성하는 수단을 제공합니다.

약간 진부하지만 나는 그것을 즉석에서 만들었으므로 나와 함께 참아주세요 :)


26

Visual Studio가 상황을 더 혼란스럽게 만드는 것은 도움이되지 않습니다. "새 프로젝트"는 실제로 프로젝트를 포함하는 새 솔루션을 생성합니다. "Open Project"는 실제로 하나 (또는 ​​여러 개)의 프로젝트를 포함하는 솔루션을 엽니 다. (파일 메뉴에 "Open Project / Solution"이 표시되어 있지만 실제로는 솔루션을 여는 것입니다. 정확한 "Close Solution"만있는 "Close Project"는 없습니다.

따라서 VS에서는 항상 솔루션 내에서 작업합니다. 많은 솔루션에는 하나의 프로젝트 만 포함되어 있으며 새로운 개발자는이를 동일한 것으로 생각할 가능성이 높습니다. 그러나 다른 프로젝트를 솔루션에 추가 할 수 있습니다.


하나의 솔루션에 여러 프로젝트를 포함하는 이유는 무엇입니까? 이해가 안 돼요 ..
Liga

12

누군가 여기까지 아래로 스크롤하기로 결정한 경우를 대비하여 MS 문서 가 차이점을 설명하는 데 꽤 잘 했다고 생각했습니다 . 여기에 관련 비트를 붙여넣고 다시 표현했습니다.

Visual Studio에서 앱, 애플리케이션, 웹 사이트, 웹 앱, 스크립트, 플러그인 등을 만들 때 프로젝트로 시작합니다. 논리적 의미에서 프로젝트에는 모든 소스 코드 파일, 아이콘, 이미지, 데이터 파일 및 실행 가능한 프로그램이나 웹 사이트로 컴파일 될 기타 모든 것이 포함되거나 컴파일을 수행하기 위해 필요합니다. 또한 프로젝트에는 프로그램이 통신 할 다양한 서비스 또는 구성 요소에 필요할 수있는 모든 컴파일러 설정 및 기타 구성 파일이 포함됩니다.

원하지 않는 경우 솔루션이나 프로젝트를 사용할 필요가 없습니다. Visual Studio에서 파일을 열고 코드 편집을 시작할 수 있습니다.

문자 그대로의 의미에서, 프로젝트는 (XML 파일입니다 .vbproj, .csproj, .vcxproj) 모든 항목에 대한 경로와 함께 가상 폴더 계층 구조를 정의하는 그것을 모든 빌드 설정 "할 수 있습니다."

Visual Studio에서 프로젝트 파일은 솔루션 탐색기에서 프로젝트 콘텐츠 및 설정을 표시하는 데 사용됩니다. 프로젝트를 컴파일 할 때 MSBuild 엔진은 프로젝트 파일을 사용하여 실행 파일을 만듭니다. 다른 종류의 출력을 생성하도록 프로젝트를 사용자 정의 할 수도 있습니다.

프로젝트는 하나 이상의 프로젝트, 빌드 정보, Visual Studio 창 설정 및 프로젝트와 연결되지 않은 기타 파일을 포함 할 수있는 솔루션 내에 논리적 의미와 파일 시스템에 포함됩니다. 문자 그대로의 의미에서 솔루션은 고유 한 형식을 가진 텍스트 파일입니다. 일반적으로 수작업으로 편집 할 수 없습니다.

솔루션에는 .suo프로젝트에서 작업 한 각 사용자에 대한 설정, 기본 설정 및 구성 정보를 저장 하는 관련 파일이 있습니다.


7

솔루션에는 여러 프로젝트가있을 수 있습니다.

솔루션은 서로 다른 프로젝트 간의 종속성 관리를 처리 할 수도 있습니다. 각 프로젝트가 최종 솔루션이 작동 할 수 있도록 적절한 순서로 빌드되도록합니다.


3

프로젝트에는 응용 프로그램 또는 응용 프로그램의 구성 요소를 구성하는 실행 파일 및 라이브러리 파일이 포함됩니다.

솔루션은 애플리케이션을 구성하는 논리적으로 관련된 프로젝트의 자리 표시 자입니다. 예를 들어 애플리케이션의 GUI, 데이터베이스 액세스 레이어 등에 대해 별도의 프로젝트를 가질 수 있습니다. 프로젝트는 프로그램의 기능에 대한 특정 부서가 될 것이며 솔루션은 하나의 응용 프로그램에서 모든 항목을 통합하는 우산이 될 것입니다.


2

솔루션은 프로젝트의 컨테이너입니다. 솔루션을 사용하여 서로 다른 관련 프로젝트 (공유 dll 등)에서 사용되는 항목을 구성 할 수도 있습니다.


2

용액 확장자 인 판독 가능 텍스트 파일 .sln및 설명 구조화 콘텐츠 갖는 프로젝트 가 포함되어있다. 프로젝트는 읽을 수 있습니다 XML 누구의 확장 형식의 텍스트 파일 .vcxproj과 XML 스키마에 따라 구조화 된 내용을 가지고, 누구의 주된 목적은 소스 코드 파일 이름 및 기타 프로젝트의 소스 코드에 대한 종속성 또는 참고 문헌의 목록도를 포함하는 것입니다.


0

솔루션은 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 프로젝트는이 공통 코드 프로젝트에 의존 할 수 있습니다. 또한 이러한 프로젝트 등을 테스트하는 프로젝트를 가질 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.