프로젝트 참조

외부 구성 요소에 대해 코드를 작성하려면 먼저 해당 구성 요소에 대한 참조를 프로젝트에 포함시켜야 합니다. 다음 형식의 구성 요소를 참조할 수 있습니다.

  • .NET Framework 클래스 라이브러리 또는 어셈블리

  • COM 구성 요소

  • 동일한 솔루션에 있는 프로젝트의 다른 어셈블리 또는 클래스 라이브러리

  • XML Web services

XML Web service 참조에 대한 자세한 내용은 Visual Studio의 웹 참조를 참조하십시오.

디자인 타임에 참조 추가

참조 추가 대화 상자를 사용하여 디자인 타임에 구성 요소에 참조를 추가할 수 있습니다.

참조 추가 대화 상자에서 나열되지 않은 어셈블리를 찾아볼 수도 있습니다. GAC(전역 어셈블리 캐시)는 완전히 런타임 환경의 일부이므로 GAC에서 참조를 추가할 수 없습니다.

프로젝트에서 어셈블리에 대한 참조를 만들면 Visual Studio에서는 다음 위치에서 어셈블리를 검색합니다.

  • 현재 프로젝트 디렉터리. 이 어셈블리는 찾아보기 탭을 통해 찾을 수 있습니다.

  • 같은 솔루션에 있는 다른 프로젝트 디렉터리. 이 어셈블리는 프로젝트 탭을 통해 찾을 수 있습니다.

디자인 타임에 참조를 추가하는 방법에 대한 자세한 내용은 방법: Visual Studio에서 참조 추가 또는 제거를 참조하십시오.

참고

모든 프로젝트에는 mscorlib에 대한 암시적 참조가 포함되어 있습니다. Visual Basic 프로젝트에는 Microsoft.VisualBasic에 대한 암시적 참조가 포함되어 있습니다.

Visual Studio 2010에서는 System.Core가 참조 목록에서 제거된 경우에도 모든 프로젝트에 System.Core에 대한 암시적 참조가 포함되어 있습니다.

런타임에 공유 구성 요소에 대한 참조

런타임에 구성 요소는 프로젝트의 출력 경로나 GAC(전역 어셈블리 캐시)에 있어야 합니다. 프로젝트에 포함된 개체에 대한 참조가 이러한 위치에 없을 경우 프로젝트를 빌드할 때 프로젝트의 출력 경로에 해당 참조를 복사해야 합니다. CopyLocal 속성은 이러한 복사 작업이 수행되어야 하는지 여부를 나타냅니다. 값이 True이면 프로젝트를 빌드할 때 프로젝트 디렉터리에 참조가 복사되고, False이면 참조가 복사되지 않습니다.

GAC에 등록되어 있는 사용자 지정 구성 요소에 대한 참조가 포함된 응용 프로그램을 배포하는 경우 구성 요소는 CopyLocal 설정과 상관없이 응용 프로그램과 함께 배포되지 않습니다. 이전 버전의 Visual Studio에서는 참조에 대해 CopyLocal 속성을 설정하여 어셈블리가 배포되었음을 확인할 수 있었습니다. 이제는 어셈블리를 수동으로 \Bin 폴더에 추가해야 합니다. 이렇게 하여 모든 사용자 지정 코드는 정밀하게 조사되고, 익숙하지 않은 사용자 지정 코드를 게시하게 될 위험이 줄어듭니다.

어셈블리나 구성 요소가 전역 어셈블리 캐시에 있거나 프레임워크 구성 요소인 경우 기본적으로 CopyLocal 속성은 False로 설정되고, 그렇지 않으면 값이 True로 설정됩니다. 프로젝트 간 참조는 항상 True로 설정됩니다.

다른 .NET Framework 버전을 대상으로 하는 프로젝트 또는 어셈블리 참조

다른 .NET Framework 버전을 대상으로 하는 프로젝트나 어셈블리를 참조하는 응용 프로그램을 만들 수 있습니다. 예를 들어, .NET Framework 버전 2.0을 대상으로 하는 어셈블리를 참조하는 .NET Framework 4 Client Profile을 대상으로 하는 응용 프로그램을 만들 수도 있습니다. 이전 버전의 .NET Framework를 대상으로 하는 프로젝트를 만드는 경우 해당 프로젝트에서 .NET Framework 4 Client Profile 또는 .NET Framework 버전 4를 대상으로 하는 프로젝트나 어셈블리에 대한 참조를 설정할 수 없습니다.

자세한 내용은 특정 .NET Framework 버전 또는 프로필을 대상으로 지정을 참조하십시오.

프로젝트 간 참조 및 파일 참조

파일 참조는 어셈블리에 대한 직접 참조이며 참조 추가 대화 상자의 찾아보기 탭을 사용하여 만듭니다. 프로젝트 간 참조는 어셈블리가 포함된 프로젝트에 대한 참조이며 참조 추가 대화 상자의 프로젝트 탭을 사용하여 만듭니다.

프로젝트 간 참조를 사용하는 경우 빌드 시스템에서 프로젝트 간에 종속성이 만들어지는 이점이 있습니다. 그러므로 참조 프로젝트를 마지막으로 빌드한 이후 종속 프로젝트가 변경되면 종속 프로젝트가 빌드됩니다. 파일 참조는 빌드 종속성을 만들지 않으므로 종속 프로젝트를 빌드하지 않고도 참조 프로젝트를 빌드하여 참조를 더 이상 사용하지 않을 수 있습니다. 즉, 프로젝트가 이전에 빌드한 버전의 프로젝트를 참조할 수 있습니다. 이 경우 bin 디렉터리에 여러 버전의 단일 DLL이 필요하지만 이는 불가능합니다. 이러한 충돌이 발생하면 경고: 'project' 프로젝트의 'file' 종속성이 'file' 참조를 덮어쓰므로 실행 디렉터리에 종속성을 복사할 수 없습니다. 등의 메시지가 나타납니다.

동일한 솔루션에 있는 다른 프로젝트의 출력에 대한 파일 참조를 추가하면 컴파일 오류가 발생할 수 있으므로 이 방법은 사용하지 않는 것이 좋습니다. 대신 참조 추가 대화 상자의 프로젝트 탭을 사용하여 동일 솔루션 내에서 프로젝트 간 참조를 만듭니다. 이렇게 하면 프로젝트에서 만드는 클래스 라이브러리를 더 잘 관리할 수 있으므로 팀 개발이 보다 쉬워집니다. 자세한 내용은 끊어진 참조 문제 해결방법: 프로젝트 종속성 만들기 및 제거를 참조하십시오.

참고

Visual Studio 2010에서는 한 프로젝트의 대상 .NET Framework 버전이 버전 4이고 다른 프로젝트의 대상 버전이 버전 2, 3 또는 3.5인 경우 프로젝트 참조 대신 파일 참조가 만들어집니다.

웹 참조

웹 참조 추가 대화 상자를 사용하여 웹 참조를 추가할 수도 있습니다. 자세한 내용은 방법: 웹 참조 추가 및 제거를 참조하십시오.

참고 항목

작업

끊어진 참조 문제 해결

방법: Visual Studio에서 참조 추가 또는 제거

기타 리소스

네임스페이스 및 구성 요소 참조

참조 관리

어셈블리를 사용한 프로그래밍