프로젝트에서 참조 관리
외부 구성 요소 또는 연결된 서비스에 대한 코드를 작성하기 전에 먼저 프로젝트에 대한 참조가 포함되어야 합니다. 참조는 기본적으로 Visual Studio에서 구성 요소 또는 서비스를 찾는 데 필요한 정보를 포함하는 프로젝트 파일의 항목입니다.
참조를 추가하는 방법은 작업 중인 코드의 프로젝트 유형에 따라 달라집니다.
솔루션 탐색기에서 종속성 노드가 표시되면, 마우스 오른쪽 버튼을 클릭하여 나타나는 메뉴를 사용하여 프로젝트 참조 추가를 선택할 수 있습니다.
프로젝트 노드을 마우스 오른쪽 버튼으로 클릭한 후 를 선택하여>프로젝트 참조를 추가할 수도 있습니다.
참조 노드가 솔루션 탐색기에 표시되는 경우, 마우스 오른쪽 버튼을 클릭하여 상황에 맞는 메뉴에서 참조 추가를 선택할 수 있습니다.
또는 프로젝트 노드 마우스 오른쪽 단추로 클릭하고 추가>참조선택합니다.
자세한 내용은 방법:참조 추가 또는 제거를 참조하세요.
다음 유형의 구성 요소 및 서비스에 대한 참조를 추가할 수 있습니다.
.NET 클래스 라이브러리 또는 어셈블리
UWP 앱
COM 구성 요소
동일한 솔루션에 있는 프로젝트의 다른 어셈블리 또는 클래스 라이브러리
공유 프로젝트
XML 웹 서비스
UWP 앱 참조
UWP(유니버설 Windows 플랫폼)는 Windows를 실행하는 모든 디바이스에 공통 앱 플랫폼을 제공합니다. UWP 앱을 만드는 방법을 알아보려면 자습서: XAML 및 C#사용하여 Visual Studio에서 첫 번째 유니버설 Windows 플랫폼 애플리케이션 만들기를 참조하세요.
프로젝트 참조
UWP(유니버설 Windows 플랫폼) 프로젝트는 Windows 10 이상에서 사용되지 않는 API를 사용하지 않는 한 솔루션의 다른 UWP 프로젝트 또는 Windows 8.1 프로젝트 또는 이진 파일에 대한 참조를 만들 수 있습니다. 더 많은 정보를 원하시면 Windows 런타임 8에서 UWP로 이동하세요.
Windows 8.1 프로젝트를 Windows 10 이상으로 대상을 변경하려는 경우 포트, 마이그레이션 및 업그레이드 Visual Studio 프로젝트참조하세요.
팁
Windows 10 및 Windows 11용 새 UWP 앱을 만들고 빌드하는 방법에 대한 자세한 내용은 UWP 버전선택합니다.
확장 SDK 참조
Visual Basic, C#, C++ 및 UWP(JavaScript 유니버설 Windows 플랫폼) 앱은 이러한 확장 SDK가 Windows 10 이상에서 사용되지 않는 API를 사용하지 않는 한 Windows 8.1을 대상으로 하는 확장 SDK를 참조할 수 있습니다. 확장 SDK 공급업체 사이트를 확인하여 UWP 앱에서 참조할 수 있는지 확인합니다.
앱에서 참조하는 확장 SDK가 지원되지 않는 것으로 확인되면 다음 단계를 수행해야 합니다.
오류를 일으키는 프로젝트의 이름을 확인합니다. 프로젝트가 대상으로 하는 플랫폼은 프로젝트 이름 옆에 괄호로 표시됩니다. 예를 들어 MyProjectName(Windows 8.1) 프로젝트 MyProjectName 플랫폼 버전 Windows 8.1을 대상으로 합니다.
지원되지 않는 확장 SDK를 소유한 공급업체의 사이트로 이동하여 프로젝트가 대상으로 하는 플랫폼의 버전과 호환되는 종속성이 있는 확장 SDK 버전을 설치합니다.
메모
확장 SDK에 다른 확장 SDK에 대한 종속성이 있는지 확인하는 한 가지 방법은 참조 관리자확인하는 것입니다. Visual Studio를 다시 시작하고 새 C# UWP 앱 프로젝트를 만든 다음 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다. Windows 탭으로 이동한 다음 확장 하위 탭으로 이동하여 확장 SDK를 선택합니다. 참조 관리자의 오른쪽 창을 보세요. 종속성이 있는 경우 해당 항목이 나열됩니다.
중요하다
프로젝트가 Windows 10을 구체적으로 대상으로 하고 이전 단계에서 설치된 확장 SDK가 Microsoft Visual C++ 런타임 패키지에 종속된 경우 Windows 10과 호환되는 Microsoft Visual C++ 런타임 패키지 버전은 v14.0이며 Visual Studio와 함께 설치됩니다.
이전 단계에서 설치한 확장 SDK가 다른 확장 SDK에 종속되어 있는 경우 종속성을 소유한 공급업체의 사이트로 이동한 다음 프로젝트가 대상으로 하는 플랫폼 버전과 호환되는 이러한 종속성 버전을 설치합니다.
Visual Studio를 다시 시작하고 앱을 엽니다.
오류를 발생시킨 프로젝트의 참조 또는 종속성 노드를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 선택합니다.
Windows 탭을 선택한 다음 확장 하위 탭을 선택하고 이전 확장 SDK에 대한 확인란의 선택을 취소한 다음 새 확장 SDK에 대한 확인란을 선택합니다. 확인선택하십시오.
설계 단계에서 참조 추가
프로젝트에서 어셈블리를 참조할 때 Visual Studio는 다음 위치에서 어셈블리를 검색합니다.
현재 프로젝트 디렉터리입니다. (찾아보기 탭을 사용하여 이러한 어셈블리를 찾을 수 있습니다.)
동일한 솔루션의 다른 프로젝트 디렉터리입니다. (이러한 어셈블리는 프로젝트 탭에서 찾을 수 있습니다.)
메모
- 모든 프로젝트에는 mscorlib대한 암시적 참조가 포함되어 있습니다.
- 참조 목록에서
System.Core
제거되더라도 모든 프로젝트에는System.Core
대한 암시적 참조가 포함됩니다. - Visual Basic 프로젝트에는 Microsoft.VisualBasic대한 암시적 참조가 포함되어 있습니다.
런타임에 공유 구성 요소에 대한 참조
런타임에 구성 요소는 프로젝트의 출력 경로 또는 GAC(전역 어셈블리 캐시)에 있어야 합니다. 프로젝트에 이러한 위치 중 하나에 없는 개체에 대한 참조가 포함된 경우 프로젝트를 빌드할 때 프로젝트의 출력 경로에 대한 참조를 복사해야 합니다. CopyLocal 속성은 이 복사본을 만들어야 하는지 여부를 나타냅니다. 값이 True 경우 프로젝트를 빌드할 때 참조가 프로젝트 디렉터리에 복사됩니다. 값이 거짓일 경우, 참조가 복사되지 않습니다.
GAC에 등록된 사용자 지정 구성 요소에 대한 참조가 포함된 애플리케이션을 배포하는 경우 구성 요소는 CopyLocal 설정에 관계없이 애플리케이션에 배포되지 않습니다. 이전 버전의 Visual Studio에서는 참조에서 CopyLocal 속성을 설정하여 어셈블리가 배포되었는지 확인할 수 있습니다. 이제 \Bin 폴더에 어셈블리를 수동으로 추가해야 합니다. 이 작업을 수행하면 모든 사용자 지정 코드가 면밀히 조사되므로 익숙하지 않은 사용자 지정 코드를 게시할 위험이 줄어듭니다.
기본적으로 어셈블리 또는 구성 요소가 전역 어셈블리 캐시에 있거나 프레임워크 구성 요소인 경우 CopyLocal 속성은 false 설정됩니다. 그렇지 않으면 값이 true으로 설정됩니다. 프로젝트-프로젝트 참조는 항상 True로 설정됩니다.
다른 버전의 .NET을 대상으로 하는 프로젝트 또는 어셈블리 참조
다른 버전의 .NET을 대상으로 하는 프로젝트 또는 어셈블리를 참조하는 애플리케이션을 만들 수 있습니다. 예를 들어 .NET Framework 4.5를 대상으로 하는 어셈블리를 참조하는 .NET Framework 4.6을 대상으로 하는 애플리케이션을 만들 수 있습니다. 이전 버전의 .NET을 대상으로 하는 프로젝트를 만드는 경우 해당 프로젝트의 참조를 최신 버전을 대상으로 하는 프로젝트 또는 어셈블리로 설정할 수 없습니다.
자세한 내용은 Framework 대상 지정 개요참조하세요.
프로젝트 간 참조
프로젝트-프로젝트 참조는 어셈블리를 포함하는 프로젝트에 대한 참조입니다. 참조 관리자 대화 상자의 프로젝트 탭을 사용하여 프로젝트 참조를 추가합니다. Visual Studio는 프로젝트에 대한 경로가 지정되면 어셈블리를 찾을 수 있습니다.
어셈블리를 생성하는 프로젝트가 있는 경우 프로젝트를 참조하고 파일 참조를 사용하지 않아야 합니다. 프로젝트 간 참조의 장점은 빌드 시스템의 프로젝트 간에 종속성을 생성한다는 것입니다. 참조 프로젝트가 마지막으로 빌드된 이후 변경된 경우 종속 프로젝트가 빌드됩니다. 파일 참조는 빌드 종속성을 만들지 않으므로 종속 프로젝트를 빌드하지 않고 참조 프로젝트를 빌드할 수 있으며 참조가 사용되지 않을 수 있습니다. 즉, 프로젝트는 이전에 빌드된 버전의 프로젝트를 참조할 수 있습니다. 이로 인해 bin 디렉터리에 여러 버전의 단일 DLL이 필요할 수 있으며 이는 불가능합니다. 이 충돌이 발생하면 "경고: 프로젝트 'project'의 종속성 'file'을 참조 'file'을 덮어쓰므로 실행 디렉터리에 복사할 수 없습니다."와 같은 메시지가 나타납니다. 자세한 내용은 끊어진 참조 문제 해결 및 방법: 프로젝트 종속성만들기 및 제거를 참조하세요.
메모
한 프로젝트의 .NET Framework 대상 버전이 버전 4.5이고 다른 프로젝트의 대상 버전이 버전 2, 3, 3.5 또는 4.0인 경우 프로젝트-프로젝트 참조 대신 파일 참조가 만들어집니다.
공유 프로젝트 참조
대부분의 다른 프로젝트 형식과 달리 공유 프로젝트 이진 출력이 없습니다. 대신 코드를 참조하는 각 프로젝트로 컴파일됩니다. 공유 프로젝트를 사용하면 다양한 애플리케이션 프로젝트에서 참조하는 공통 코드를 작성할 수 있습니다. 코드는 각 참조 프로젝트의 일부로 컴파일되며 플랫폼별 기능을 공유 코드 베이스에 통합하는 데 도움이 되는 컴파일러 지시문을 포함할 수 있습니다. 참조 관리자 대화 상자의 공유 프로젝트 탭에서 공유 프로젝트에 대한 참조를 추가합니다.
파일 참조
파일 참조는 Visual Studio 프로젝트의 컨텍스트 외부에 있는 어셈블리에 대한 직접 참조입니다. 참조 관리자 대화 상자의 찾아보기 탭을 사용하여 만듭니다. 출력으로 만드는 프로젝트가 아니라 어셈블리 또는 구성 요소만 있는 경우 파일 참조를 사용합니다.