다음을 통해 공유


프로젝트 및 솔루션 소개

이 자습서에서는 Visual Studio에서 솔루션프로젝트 만드는 것이 어떤 의미인지 알아보세요. 솔루션은 클래스 라이브러리 프로젝트 및 해당 테스트 프로젝트와 같은 하나 이상의 관련 코드 프로젝트를 구성하는 컨테이너입니다. 솔루션에서 한 프로젝트에서 다른 프로젝트로 참조를 만듭니다. 이 자습서에서는 프로젝트의 속성과 포함할 수 있는 일부 파일에 대해서도 설명합니다.

프로젝트의 개념을 이해하기 위한 연습으로 솔루션과 프로젝트를 처음부터 만듭니다. 일반적으로 Visual Studio 프로젝트 템플릿 사용하여 새 프로젝트를 만듭니다.

이 자습서에서는 다음 방법을 알아봅니다.

  • 프로젝트에 항목 추가
  • 두 번째 프로젝트 추가
  • 프로젝트 참조 추가
  • 테스트 코드 추가
  • 프로젝트 속성 보기

필수 구성 요소

솔루션 및 프로젝트

Visual Studio에서 솔루션은 답변이 아닙니다. 솔루션은 Visual Studio에서 하나 이상의 관련 프로젝트를 구성하는 데 사용하는 컨테이너일 뿐입니다. 솔루션을 열면 Visual Studio는 솔루션에 포함된 모든 프로젝트를 자동으로 로드합니다.

메모

Visual Studio에서 앱을 개발해도 솔루션과 프로젝트가 필요하지 않습니다. 코드가 포함된 폴더를 열고 코딩, 빌드 및 디버깅을 시작할 수 있습니다. 예를 들어 복제된 GitHub 리포지토리에는 Visual Studio 프로젝트 및 솔루션이 포함되지 않을 수 있습니다. 자세한 내용은 프로젝트 또는 솔루션 없이 Visual Studio에서 코드 개발참조하세요.

솔루션 만들기

빈 솔루션을 만들어 탐색을 시작합니다. Visual Studio를 알게 된 후에는 빈 솔루션을 자주 만들지 않을 것입니다. 새 프로젝트를 만들 때 솔루션이 아직 열려 있지 않으면 Visual Studio에서 프로젝트에 대한 솔루션을 자동으로 만듭니다.

  1. Visual Studio를 엽니다.

  2. 시작 창에서 새 프로젝트 만들기선택합니다.

  3. 새 프로젝트 만들기 페이지에서 빈 솔루션 검색 상자에 입력하고 빈 솔루션 템플릿을 선택한 다음, 다음선택합니다.

    Visual Studio 2019에서 선택한 빈 솔루션 템플릿을 보여 주는 스크린샷

    여러 워크로드가 설치된 경우 빈 솔루션 템플릿이 검색 결과 목록의 맨 위에 표시되지 않을 수 있습니다. 목록의 검색 섹션에 따라 기타 결과로 스크롤해 봅니다. 거기 나타날 거예요.

  4. 솔루션 이름을 QuickSolution 이름을 지정한 다음 만들기선택합니다.

    솔루션이 Visual Studio 창의 오른쪽에 있는 솔루션 탐색기 나타납니다. 솔루션 탐색기 자주 사용하여 프로젝트의 내용을 찾아볼 수 있습니다.

  1. Visual Studio를 열고 시작 창에서 새 프로젝트 만들기선택합니다.

  2. 새 프로젝트 만들기 페이지에서 빈 솔루션 검색 상자에 입력하고 빈 솔루션 템플릿을 선택한 다음, 다음선택합니다.

    Visual Studio에서 선택한 빈 솔루션 템플릿을 보여 주는 스크린샷

    여러 워크로드가 설치된 경우 빈 솔루션 템플릿이 검색 결과 목록의 맨 위에 표시되지 않을 수 있습니다. 검색 기타 결과를 따라 스크롤하여 템플릿을 찾습니다.

  3. 새 프로젝트 구성 페이지에서 솔루션을 QuickSolution로 이름 지정한 다음, 만들기를 선택합니다.

    QuickSolution 솔루션은 Visual Studio 창의 오른쪽에 있는 솔루션 탐색기 나타납니다. 솔루션 탐색기 자주 사용하여 프로젝트의 내용을 찾아봅니다.

프로젝트 추가

이제 솔루션에 첫 번째 프로젝트를 추가합니다. 빈 프로젝트로 시작하고 필요한 항목을 추가합니다.

  1. 솔루션 탐색기에서 솔루션 'QuickSolution'를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 추가>새 프로젝트선택합니다.

    새 프로젝트 추가대화 상자가 열립니다.

  2. 위쪽의 검색 상자에 빈 텍스트를 입력한 다음 언어아래에서 C# 선택합니다.

  3. 빈 프로젝트(.NET Framework) 템플릿을 선택하고 다음 선택합니다.

  4. 프로젝트를 QuickDate로 이름 지정한 다음, 만들기을 선택합니다.

    솔루션 탐색기 솔루션 아래에 QuickDate라는 프로젝트가 나타납니다. 현재 App.config라는 단일 파일이 포함되어 있습니다.

    메모

    빈 프로젝트(.NET Framework) 템플릿이 표시되지 않으면 .NET 데스크톱 개발용 Visual Studio 워크로드를 설치해야 합니다. Visual Studio는 워크로드 기반 설치를 사용하여 개발 유형에 필요한 구성 요소만 설치합니다.

    새 프로젝트를 만들 때 새 워크로드를 설치하는 쉬운 방법은 "찾고 있는 항목이 없는 경우"라는 텍스트 아래에 있는 "도구 및 기능 더 설치" 링크를 선택하는 것입니다.. Visual Studio 설치 관리자가 시작되면 .NET 데스크톱 개발 워크로드를 선택한 다음 수정 단추를 선택합니다.

    Visual Studio 설치 관리자 열기 링크를 보여 주는 스크린샷

  1. 솔루션 탐색기에서 솔루션 'QuickSolution'를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 추가>새 프로젝트선택합니다.

  2. 새 프로젝트 추가 페이지에서 맨 위에 있는 검색 상자에 을 입력하고 모든 언어아래에서 C#을 선택합니다.

  3. C# 빈 프로젝트(.NET Framework) 템플릿을 선택한 다음 다음선택합니다.

    메모

    Visual Studio는 워크로드 기반 설치를 사용하여 개발 유형에 필요한 구성 요소만 설치합니다. 빈 프로젝트(.NET Framework) 템플릿이 표시되지 않으면 Visual Studio 워크로드에 .NET 데스크톱 개발 설치합니다.

    새 프로젝트를 만들 때 새 워크로드를 설치하는 쉬운 방법은 텍스트 원하는 항목을 찾을 수 없습니까?아래의 추가 도구 및 기능 설치 링크를 선택하는 것입니다. Visual Studio 설치 관리자에서 .NET 데스크톱 개발 워크로드를 선택한 다음 수정을 선택합니다.

    Visual Studio 설치 관리자 열기 링크를 보여주는 스크린샷

  4. 새 프로젝트 구성 페이지에서 프로젝트 이름을 QuickDate로지정한 다음, 생성을 선택합니다.

    QuickDate 프로젝트가 솔루션 탐색기 솔루션 아래에 나타납니다. 프로젝트에는 참조 노드와 App.config이라는 단일 파일이 포함됩니다.

프로젝트에 항목 추가

빈 프로젝트에 코드 파일을 추가합니다.

  1. 솔루션 탐색기QuickDate 프로젝트를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 추가>새 항목선택합니다.

    새 항목 추가 대화 상자가 열립니다. 대화 상자가 압축 보기로 열리면 모든 템플릿 표시를 선택합니다.

  2. Visual C# 항목 확장한 다음 코드선택합니다. 가운데 창에서 클래스 항목 템플릿을 선택합니다. 이름아래에서 일정입력하고, 추가선택합니다.

    Visual Studio는 프로젝트에 Calendar.cs 파일을 추가합니다. 끝의 .cs C# 코드 파일의 파일 확장명입니다. Calendar.cs 파일이 솔루션 탐색기 시각적 프로젝트 계층 구조에 나타나고 파일이 편집기에서 열립니다.

  3. Calendar.cs 파일의 내용을 다음 코드로 바꿉니다.

    using System;
    
    namespace QuickDate
    {
        internal class Calendar
        {
            static void Main(string[] args)
            {
                DateTime now = GetCurrentDate();
                Console.WriteLine($"Today's date is {now}");
                Console.ReadLine();
            }
    
            internal static DateTime GetCurrentDate()
            {
                return DateTime.Now.Date;
            }
        }
    }
    

    코드가 아직 수행하는 모든 작업을 이해할 필요는 없습니다. Ctrl+F5눌러 앱을 실행합니다. 앱은 오늘 날짜를 콘솔또는 표준 출력 창에 출력합니다. 그런 다음 콘솔 창을 닫습니다.

두 번째 프로젝트 추가

솔루션은 일반적으로 둘 이상의 프로젝트를 포함하며 이러한 프로젝트는 종종 서로를 참조합니다. 솔루션의 일부 프로젝트는 클래스 라이브러리일 수 있고, 일부는 실행 가능한 애플리케이션일 수 있으며, 일부는 단위 테스트 프로젝트 또는 웹 사이트일 수 있습니다.

솔루션에 단위 테스트 프로젝트를 추가하려면 프로젝트에 다른 코드 파일을 추가할 필요가 없도록 프로젝트 템플릿에서 시작합니다.

  1. 솔루션 탐색기에서 솔루션 'QuickSolution'를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 추가>새 프로젝트선택합니다.

  2. 새 프로젝트 추가 대화 상자의 상단의 검색 상자에 텍스트 단위 테스트를 입력한 다음 언어아래에서 C#을 선택합니다.

  3. .NET Core용 단위 테스트 프로젝트 프로젝트 템플릿을 선택한 다음 다음선택합니다.

    메모

    Visual Studio 2019 버전 16.9부터 MSTest 프로젝트 템플릿 이름이 MSTest 단위 테스트 프로젝트(.NET Core)단위 테스트 프로젝트변경되었습니다. 이 업데이트에서 프로젝트 만들기의 여러 단계가 변경되었습니다.

  4. 프로젝트 이름을 QuickTest로 하고, 다음를 선택합니다.

  5. 권장 대상 프레임워크(.NET Core 3.1) 또는 .NET 5를 선택한 다음 만들기선택합니다.

    두 번째 프로젝트가 솔루션 탐색기추가되고 UnitTest1.cs 이름이 지정된 파일이 편집기에서 열립니다.

    두 개의 프로젝트가 있는 솔루션 탐색기를 보여 주는 스크린샷

  1. 솔루션 탐색기에서 솔루션 'QuickSolution'를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 추가>새 프로젝트선택합니다.

  2. 새 프로젝트 추가 대화 상자의 맨 위에 있는 검색 상자에 단위 테스트 입력한 다음 모든 언어아래에서 C# 선택합니다.

  3. C# 단위 테스트 프로젝트(.NET Framework) 프로젝트 템플릿을 선택한 다음 선택합니다.

  4. 새 프로젝트 구성 페이지에서 프로젝트 이름을 QuickTest로 지정하고, 만들기를 선택합니다.

    Visual Studio는 QuickTest 프로젝트를 솔루션 탐색기추가하고 UnitTest1.cs 파일이 편집기에서 열립니다.

    두 개의 프로젝트가 있는 솔루션 탐색기를 보여 주는 스크린샷

프로젝트 참조 추가

새 단위 테스트 프로젝트를 사용하여 QuickDate 프로젝트에서 메서드를 테스트하려면 QuickTest 프로젝트에 QuickDate 대한 참조를 추가해야 합니다. 참조를 추가하면 두 프로젝트 간의 빌드 종속성 만들어집니다. 솔루션을 빌드할 때 QuickDateQuickTest보다 먼저 빌드됩니다.

  1. QuickTest 프로젝트에서 종속성 노드를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 프로젝트 참조 추가을 선택합니다.

    참조 관리자 대화 상자가 열립니다.

  2. 왼쪽 창에서 프로젝트확장한 다음, 솔루션선택합니다. 가운데 창에서 QuickDate옆의 확인란을 선택한 다음, 확인을 선택합니다.

    QuickDate 프로젝트에 대한 참조가 추가됩니다.

    Visual Studio 2019의 프로젝트 참조를 보여 주는 솔루션 탐색기의 스크린샷

  1. 솔루션 탐색기QuickTest 프로젝트의 참조 노드를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 참조 추가선택합니다.

  2. 참조 관리자 대화 상자에서 프로젝트을 선택합니다. 가운데 창에서 QuickDate옆의 확인란을 선택한 다음, 확인을 선택합니다.

    QuickDate 프로젝트에 대한 참조는 솔루션 탐색기QuickTest 프로젝트 아래에 나타납니다.

    프로젝트 참조를 보여 주는 솔루션 탐색기의 스크린샷

테스트 코드 추가

  1. 이제 C# 테스트 코드 파일에 테스트 코드를 추가합니다. UnitTest1.cs 내용을 다음 코드로 바꿉니다.

    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    
    namespace QuickTest
    {
        [TestClass]
        public class UnitTest1
        {
            [TestMethod]
            public void TestGetCurrentDate()
            {
                Assert.AreEqual(DateTime.Now.Date, QuickDate.Calendar.GetCurrentDate());
            }
        }
    }
    

    일부 코드 아래에 빨간색 물결선이 나타납니다. 테스트 프로젝트를 QuickDate 프로젝트의 프렌드 어셈블리로 만들어 이 오류를 해결할 수 있습니다.

  2. Calendar.cs 파일에서 다음 using 문InternalsVisibleToAttribute 특성을 파일 맨 위에 추가하여 테스트 프로젝트의 오류를 해결합니다.

    using System.Runtime.CompilerServices;
    
    [assembly: InternalsVisibleTo("QuickTest")]
    

    Calendar.cs 코드는 다음 스크린샷과 같습니다.

    C Sharp 코드를 보여 주는 스크린샷

    C Sharp 코드를 보여 주는 스크린샷

단위 테스트 실행

단위 테스트가 작동하는지 확인하려면 메뉴 모음에서 테스트>모든 테스트 실행선택합니다. 테스트 탐색기 창이 열리고 TestGetCurrentDate 테스트가 통과하는 것을 볼 수 있습니다.

통과된 테스트가 있는 테스트 탐색기를 보여 주는 스크린샷

통과된 테스트가 있는 테스트 탐색기를 보여 주는 스크린샷

메뉴 모음에서 테스트> 선택하여 테스트 탐색기 열 수도 있습니다.

프로젝트 속성

특성이 포함된 InternalsVisibleToAttribute 파일의 줄은 QuickTest 프로젝트의 어셈블리 이름 또는 파일 이름을 참조합니다. 어셈블리 이름이 항상 프로젝트 이름과 같은 것은 아닐 수 있습니다. 프로젝트의 어셈블리 이름을 찾으려면 프로젝트 속성을 사용합니다. 속성 페이지에는 프로젝트에 대한 다양한 설정이 포함되어 있습니다.

  1. 솔루션 탐색기QuickTest 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성선택하거나 프로젝트를 선택하고 Alt+Enter누릅니다.

    프로젝트의 속성 페이지가 애플리케이션 탭에 열려. QuickTest 프로젝트의 어셈블리 이름 실제로 QuickTest .

    원하는 경우 여기에서 이름을 변경할 수 있습니다. 테스트 프로젝트를 빌드할 때 결과 이진 파일의 이름이 QuickTest.dll<NewName>.dll변경됩니다.

    프로젝트 속성을 보여 주는 스크린샷

    프로젝트 속성을 보여 주는 스크린샷

  2. 빌드디버그같은 프로젝트 속성 페이지의 다른 탭을 탐색합니다. 이러한 탭은 프로젝트 유형에 따라 다릅니다.