다음을 통해 공유


프로젝트 참조

업데이트: 2007년 11월

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

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

  • COM 구성 요소

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

  • XML Web services

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

Visual Basic 정보:

Visual Studio에서는 Visual Basic 6.0에서와 다른 방식으로 프로젝트 참조를 관리합니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 프로젝트 관리를 참조하십시오.

디자인 타임에 참조 추가

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

참조 추가 대화 상자에는 다음 위치의 어셈블리가 나열됩니다.

  • Public Assemblies 폴더(Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies)

    Public Assemblies 폴더로 다른 어셈블리를 복사하면 참조 추가 대화 상자의 목록에 해당 어셈블리가 나타납니다.

  • 참조 경로를 설정하여 지정한 폴더

    Visual C# 프로젝트에 대한 참조 경로를 설정하는 절차는 약간 다릅니다. Visual Basic 프로젝트에서 참조 경로 단추를 클릭하여 참조 추가 대화 상자를 표시합니다. Visual C# 프로젝트에서 프로젝트 디자이너의 프로젝트 디자이너, 참조 경로 페이지(C#)를 사용합니다. 자세한 내용은 방법: 참조 경로 설정(C#)을 참조하십시오.

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

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

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

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

  • Public Assemblies 폴더(Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies). 이 어셈블리는 .NET 탭을 통해 찾을 수 있습니다.

  • 참조 경로를 설정하여 지정한 폴더 참조 경로 대화 상자(Visual Basic) 또는 프로젝트 디자이너, 참조 경로 페이지(C#)를 사용하여 참조 경로를 설정할 수 있습니다.

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

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

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

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

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

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

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

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

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

웹 참조

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

참고 항목

작업

끊어진 참조 문제 해결

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

참조

참조 추가 대화 상자

기타 리소스

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

참조 관리

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