Share via


프로젝트 참조 관리

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

  • Windows 스토어 응용 프로그램 참조

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

  • COM 구성 요소

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

  • XML Web services

XML Web service 참조에 대한 자세한 내용은 Web References를 참조하십시오.

Windows 스토어 응용 프로그램 참조

프로젝트 참조

Windows 8을 대상으로 하는 Windows 스토어 프로젝트는 Windows 8.1을 대상으로 하는 Windows 스토어 프로젝트 또는 이진 파일에 따라 달라질 수 없습니다.

응용 프로그램의 모든 프로젝트가 Windows 8.1을 대상으로 하여 응용프로그램이 C++ Windows Store 프로젝트로 구성되는 경우 다음 단계를 수행해야 합니다.

  1. 응용 프로그램의 모든 프로젝트 대상을 Windows 8.1로 다시 지정합니다.앱에서 각 프로젝트를 마우스 오른쪽 단추로 클릭하고 Windows 8.1로 대상 변경 명령을 선택한 다음 검토 프로젝트 및 솔루션 변경 대화 상자에서 확인을 클릭합니다.

  2. Visual Basic, Visual C#, c++ Windows 저장소 프로젝트에 따라 달라지는 자바스크립트 프로젝트를 모두 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택하고 Windows 탭으로 이동 후 확장 하위 탭, Microsoft Visual C++ 런타임 패키지 v11.0을 선택 취소하고 v12.0 Microsoft Visual C++ 런타임 패키지를 확인한 뒤 확인을 클릭합니다.

Windows 8.1을 대상으로 하는 Visual Basic, C# 및 JavaScript Windows 스토어 프로젝트는 이러한 프로젝트가 Windows 8.1에서 사용되지 않는 API를 사용하지 않는 경우 Windows 8을 대상으로 하는 Visual Basic 및 C# Windows 스토어 프로젝트를 참조할 수 있습니다.Windows 8을 대상으로 하는 Windows 스토어 프로젝트가 Windows 8.1 프로젝트에서 예상대로 작동하는지 여부를 확인하려면Windows 8 응용 프로그램에 Windows 8.1 미리 보기 마이그레이션을 참조하십시오.

확장 SDK 참조

Windows 8.1을 대상으로 하는 Visual Basic, C#, C++ 및 JavaScript Windows 스토어 프로젝트는 런타임 문제가 발생할 수 있으므로 Microsoft Visual C++ Runtime Package v11.0에 종속되는 확장 SDK를 참조할 수 없습니다.확장 SDK가 Microsoft Visual C++ 런타임 패키지 v11.0에 의존하는지 알아보려면 새 C# Windows 스토어 프로젝트를 만들고 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 선택하여 Windows 탭으로 이동하고 확장 하위 탭으로 이동한 다음 확장 SDK를 선택하고 참조 관리자 목록의 오른쪽 창에 Microsoft.VCLibs, 버전 = 11.0이 종속성으로 표시되는지 확인합니다.

Windows 8.1을 대상으로 하는 Visual Basic, C# 및 JavaScript Windows 스토어 프로젝트는 이러한 확장 SDK가 Windows 8.1에서 사용되지 않는 API를 사용하지 않는 한 Microsoft Visual C++ Runtime Package v11.0에 종속되지 않는 확장 SDK를 참조할 수 있습니다.Windows 8.1을 대상으로 하는 Windows 스토어 프로젝트로 참조할 수 있는지 여부를 확인하려면 공급 업체 확장 SDK 사이트 대상으로 하는 프로젝트를 확인하십시오

응용 프로그램이 참조하는 확장 SDK가 지원받지 않는 경우 다음 단계를 수행합니다.

  1. 이 오류의 원인인 프로젝트 이름을 찾습니다.프로젝트의 대상인 플랫폼이 프로젝트 이름 옆의 괄호 안에 표시됩니다.예를 들어, **MyProjectName (Windows 8.1)**은 MyProjectName 프로젝트가 플랫폼 버전 Windows 8.1을 대상으로 한다는 점을 의미합니다.

  2. 지원되지 않는 확장 SDK를 소유한 공급 업체의 사이트로 이동하여 프로젝트의 대상 플랫폼 버전과 호환되는 종속성으로 확장 SDK 버전을 설치합니다.

    [!참고]

    다른 확장 SDK에 대한 종속성이 있는 확장 SDK에서 Visual Studio를 다시 시작할지 여부를 확인하려면 새 C# Windows 스토어 프로젝트를 만들고 프로젝트에서 마우스 오른쪽 단추를 클릭하여 참조 추가를 선택하고, 탭에서 확장 하위 탭으로 이동한 후, 확장 SDK를 선택하고 참조 관리자의 오른쪽 창을 봅니다.종속성이 있는 경우 나열됩니다.

    중요중요

    프로젝트가 Windows 8.1을 대상으로 하고 이전 단계에 설치된 확장 SDK가 SDK Microsoft Visual C++ 런타임 패키지에서 종속성을 가지는 경우 Windows 8.1와 호환되는 Microsoft Visual C++ 런타임 패키지 버전은 버전 v12.0이 되고 Visual Studio 2013가 설치됩니다.

  3. 이전 단계에 설치된 확장 SDK가 다른 확장 SDK에 대해 종속성을 가지는 경우 종속성을 소유한 공급업체의 사이트로 이동하여 프로젝트가 대상으로 하는 플랫폼의 버전과 호환되는 종속성의 버전을 설치합니다.

  4. Visual Studio를 다시 시작하고 응용 프로그램을 엽니다.

  5. 오류를 발생시키는 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가(Visual Basic, C#, JavaScript 프로젝트에서) 또는 참조(c++ 프로젝트에서)를 선택합니다.C++ 프로젝트의 경우 새 참조 추가 단추를 클릭합니다.

  6. 윈도우탭을 클릭하고 확장 하위 탭을 클릭하고 나서, 이전 Extension SDK 확인란의 선택을 취소하고 새 Extension SDK 확인란을 체크합니다.확인을 클릭합니다.

디자인 타임에 참조 추가

디자인 타임에 하나 이상의 참조를 추가하려면 빌드할 프로젝트 형식에 따라 참조 관리자 대화 상자 또는 참조 추가 대화 상자를 사용하십시오.모든 Windows 스토어 응용 프로그램과 대부분의 다른 형식의 프로젝트에 대해 참조 관리자 대화 상자를 사용합니다.자세한 내용은 방법: 참조 관리자를 사용하여 참조 추가 또는 제거을 참조하십시오.몇 가지 다른 프로젝트 형식이 참조 추가 대화 상자를 지원합니다.자세한 내용은 방법: 참조 추가 대화 상자를 사용하여 참조 추가 또는 제거을 참조하십시오.

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

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

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

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

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

[!참고]

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

System.Core가 참조 목록에서 제거된 경우에도 Visual Studio의 모든 프로젝트에 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' 참조를 덮어쓰므로 실행 디렉터리에 종속성을 복사할 수 없습니다. 등의 메시지가 나타납니다.

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

[!참고]

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

웹 참조

웹 참조 추가 대화 상자를 사용하여 웹 참조를 추가할 수도 있습니다.자세한 내용은 How to: Add and Remove Web References을 참조하십시오.

참고 항목

작업

끊어진 참조 문제 해결

방법: 참조 추가 대화 상자를 사용하여 참조 추가 또는 제거

개념

방법: 참조 관리자를 사용하여 참조 추가 또는 제거

기타 리소스

Referencing Namespaces and Components

Managing References

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