자습서: Visual Studio를 사용하여 .NET 클래스 라이브러리 만들기
이 자습서에서는 단일 문자열 처리 메서드를 포함하는 간단한 클래스 라이브러리를 만듭니다.
클래스 라이브러리 애플리케이션에서 호출되는 형식과 메서드를 정의합니다. 라이브러리가 .NET Standard 2.0을 대상으로 하는 경우 .NET Standard 2.0을 지원하는 모든 .NET 구현(.NET Framework 포함)에서 호출할 수 있습니다. 라이브러리가 .NET 8을 대상으로 하는 경우 .NET 8을 대상으로 하는 모든 애플리케이션에서 호출할 수 있습니다. 이 자습서에서는 .NET 8을 대상으로 하는 방법을 보여줍니다.
클래스 라이브러리를 만들 때 NuGet 패키지로 배포하거나 이를 사용하는 애플리케이션과 함께 번들로 제공되는 구성 요소로 배포할 수 있습니다.
필수 구성 요소
Visual Studio 2022에서 .NET 데스크톱 개발 워크로드가 설치됨. 이 워크로드를 선택하면 .NET 8 SDK가 자동으로 설치됩니다.
자세한 내용은 Visual Studio사용하여 .NET SDK 설치
참조하세요.
솔루션 만들기
먼저 빈 솔루션을 만들어 클래스 라이브러리 프로젝트를 배치합니다. Visual Studio 솔루션은 하나 이상의 프로젝트에 대한 컨테이너 역할을 합니다. 관련된 프로젝트를 동일한 솔루션에 추가합니다.
빈 솔루션을 만들려면 다음을 수행합니다.
Visual Studio를 시작합니다.
시작 창에서 새 프로젝트 만들기을 선택합니다.
새 프로젝트 만들기 페이지에서 검색 상자에 솔루션 입력합니다. 비어 있는 솔루션 템플릿을 선택한 다음 다음으로 진행합니다.
새 프로젝트 구성 페이지에서 솔루션 이름 상자에 ClassLibraryProjects을 입력합니다. 그런 다음 만들기선택합니다.
클래스 라이브러리 프로젝트 만들기
솔루션에 "StringLibrary"라는 새 .NET 클래스 라이브러리 프로젝트를 추가합니다.
솔루션 탐색기 에서 솔루션을 마우스 오른쪽 버튼으로 클릭한 다음,새 프로젝트 을추가를 선택합니다. 새 프로젝트 추가 페이지에서 검색 상자에 라이브러리를 입력합니다. 언어 목록에서
C# 선택하거나 Visual Basic플랫폼 목록에서 모든 플랫폼을 선택합니다. 클래스 라이브러리 템플릿을 선택한 다음 다음선택합니다. 새 프로젝트 구성 페이지에서 프로젝트 이름 상자에 StringLibrary 입력한 다음, 다음선택합니다.
추가 정보 페이지에서 .NET 8을 선택한 다음 만들기를 선택합니다.
라이브러리가 올바른 버전의 .NET을 대상으로 지정하는지 확인합니다. 솔루션 탐색기라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성선택합니다. 대상 프레임워크 텍스트 상자에 프로젝트가 .NET 8.0을 대상으로 하는 것을 보여 줍니다.
Visual Basic을 사용하는 경우 루트 네임스페이스 텍스트 상자에서 텍스트의 지우기를 선택합니다.
클래스 라이브러리의 프로젝트 속성
각 프로젝트에 대해 Visual Basic은 프로젝트 이름에 해당하는 네임스페이스를 자동으로 만듭니다. 이 자습서에서는 코드 파일의
namespace
키워드를 사용하여 최상위 네임스페이스를 정의합니다.Class1.cs 또는 Class1.vb 코드 창의 코드를 다음 코드로 바꾸고 파일을 저장합니다. 사용하려는 언어가 표시되지 않으면 페이지 맨 위에 있는 언어 선택기를 변경합니다.
using System; namespace UtilityLibraries { public static class StringLibrary { public static bool StartsWithUpper(this string str) { if (string.IsNullOrWhiteSpace(str)) return false; char ch = str[0]; return char.IsUpper(ch); } } }
Imports System.Runtime.CompilerServices Namespace UtilityLibraries Public Module StringLibrary <Extension> Public Function StartsWithUpper(str As String) As Boolean If String.IsNullOrWhiteSpace(str) Then Return False End If Dim ch As Char = str(0) Return Char.IsUpper(ch) End Function End Module End Namespace
UtilityLibraries.StringLibrary
클래스 라이브러리에는StartsWithUpper
메서드가 포함되어 있습니다. 이 메서드는 현재 문자열 인스턴스가 대문자로 시작하는지 여부를 나타내는 Boolean 값을 반환합니다. 유니코드 표준은 대문자를 소문자에서 구분합니다. Char.IsUpper(Char) 메서드는 문자가 대문자이면true
반환합니다.클래스의 멤버인 것처럼 호출할 수 있도록 확장 메서드로 구현됩니다. C# 코드에서 string
후 물음표(?
)는 문자열이 null일 수 있음을 나타냅니다.메뉴 모음에서 빌드>빌드 솔루션을 선택하거나 Ctrl+Shift+B를 눌러 프로젝트가 오류 없이 컴파일되는지 확인합니다.
솔루션에 콘솔 앱 추가
클래스 라이브러리를 사용하는 콘솔 애플리케이션을 추가합니다. 앱은 사용자에게 문자열을 입력하라는 메시지를 표시하고 문자열이 대문자로 시작하는지 여부를 보고합니다.
솔루션에 "ShowCase"라는 새 .NET 콘솔 애플리케이션을 추가합니다.
솔루션 탐색기 솔루션을 마우스 오른쪽 단추로 클릭하고 추가>새 프로젝트선택합니다.
새 프로젝트 추가 페이지에서 검색 상자에 콘솔 입력하세요. 언어 목록에서
C# 선택하거나 Visual Basic플랫폼 목록에서 모든 플랫폼을 선택합니다. 콘솔 애플리케이션 템플릿을 선택한 다음 선택합니다.
새 프로젝트 구성 페이지에서 프로젝트 이름 상자에 ShowCase를 입력합니다. 그런 다음 다음선택합니다.
추가 정보 페이지의Framework 상자에서 .NET 8선택합니다. 그런 다음 만들기선택합니다.
Program.cs 또는 Program.vb 파일의 코드 창에서 모든 코드를 다음 코드로 바꿉니다.
using System; using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; } } }
Imports UtilityLibraries Module Program Dim row As Integer = 0 Sub Main() Do If row = 0 OrElse row >= 25 Then ResetConsole() Dim input As String = Console.ReadLine() If String.IsNullOrEmpty(input) Then Return Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{If(input.StartsWithUpper(), "Yes", "No")} {Environment.NewLine}") row += 3 Loop While True End Sub Private Sub ResetConsole() If row > 0 Then Console.WriteLine("Press any key to continue...") Console.ReadKey() End If Console.Clear() Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}") row = 3 End Sub End Module
이 코드는
row
변수를 사용하여 콘솔 창에 기록된 데이터 행 수의 수를 유지 관리합니다. 25보다 크거나 같을 때마다 코드는 콘솔 창을 지우고 사용자에게 메시지를 표시합니다.프로그램에서 사용자에게 문자열을 입력하라는 메시지를 표시합니다. 문자열이 대문자로 시작하는지 여부를 나타냅니다. 사용자가 문자열을 입력하지 않고 Enter 키를 누르면 애플리케이션이 종료되고 콘솔 창이 닫힙니다.
프로젝트 참조 추가
처음에는 새 콘솔 앱 프로젝트에서 클래스 라이브러리에 액세스할 수 없습니다. 클래스 라이브러리에서 메서드를 호출할 수 있도록 하려면 클래스 라이브러리 프로젝트에 대한 프로젝트 참조를 만듭니다.
솔루션 탐색기에서
ShowCase
프로젝트의 종속성 노드를 오른쪽 클릭하고, 프로젝트 참조추가를 선택합니다.참조 상황에 맞는 메뉴 추가
참조 관리자 대화 상자에서 StringLibrary 프로젝트를 선택하고 확인을 선택합니다.
StringLibrary가 선택된
앱 실행
솔루션 탐색기에서 ShowCase 프로젝트를 마우스 오른쪽 버튼으로 클릭한 후, 상황에 맞는 메뉴에서 시작 프로젝트로 설정을 선택합니다.
Visual Studio 프로젝트 컨텍스트 메뉴에서 시작 프로젝트를 설정하기 위한
Ctrl+F5 눌러 디버깅하지 않고 프로그램을 컴파일하고 실행합니다.
문자열을 입력한 후 Enter키를 누르고, 프로그램을 종료하려면 Enter 키를 누르세요.
ShowCase가 실행 중인
추가 리소스
- .NET CLI 사용하여 라이브러리 개발
- .NET Standard 버전 및 그들이 지원하는 플랫폼.
다음 단계
이 자습서에서는 클래스 라이브러리를 만들었습니다. 다음 자습서에서는 클래스 라이브러리를 단위 테스트하는 방법을 알아봅니다.
단위는 Visual Studio 사용하여 .NET 클래스 라이브러리를 테스트합니다.
또는 자동화된 단위 테스트를 건너뛰고 NuGet 패키지를 만들어 라이브러리를 공유하는 방법을 알아볼 수 있습니다.
Visual Studio 사용하여 패키지 만들기 및 게시
또는 콘솔 앱을 게시하는 방법을 알아봅니다. 이 자습서에서 만든 솔루션을 사용하여 콘솔 앱을 게시하면, 클래스 라이브러리가 .dll 파일로 함께 포함됩니다.
Visual Studio를 사용하여 .NET 콘솔 애플리케이션 게시
.NET