프로젝트의 참조 관리Managing references in a project

외부 구성 요소 또는 연결된 서비스에 대해 코드를 작성하기 전에 프로젝트에 이에 대한 참조가 포함되어 있어야 합니다.Before you write code against an external component or connected service, your project must first contain a reference to it. 참조는 기본적으로 Visual Studio에서 구성 요소 또는 서비스를 찾기 위해 필요로 하는 정보를 포함하는 프로젝트 파일의 항목입니다.A reference is essentially an entry in a project file that contains the information that Visual Studio needs to locate the component or the service.

참조를 추가하려면 솔루션 탐색기에서 참조 노드를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.To add a reference, right click on the References node in Solution Explorer and choose Add Reference. 자세한 내용은 방법: 참조 관리자를 사용하여 참조 추가 또는 제거를 참조하세요.For more information, see How to: Add or Remove References By Using the Reference Manager.

Visual C++에서 참조 추가Add a reference in Visual C++

다음 형식의 구성 요소 및 서비스에 대한 참조를 만들 수 있습니다.You can make a reference to the following types of components and services:

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

  • UWP 앱UWP apps

  • COM 구성 요소COM components

  • 동일 솔루션에 있는 다른 어셈블리 또는 프로젝트의 클래스 라이브러리Other assemblies or class libraries of projects in the same solution

  • XML Web servicesXML Web services

UWP 앱 참조UWP App References

프로젝트 참조Project References

UWP(유니버설 Windows 플랫폼) 프로젝트는 해당 프로젝트가 Windows 10에서 더 이상 사용되지 않는 API를 사용하지 않는 경우 솔루션의 다른 UWP 프로젝트나 Windows 8.1 프로젝트 또는 이진 파일에 대한 참조를 만들 수 있습니다.Universal Windows Platform (UWP) projects can create references to other UWP projects in the solution, or to Windows 8.1 projects or binaries, provided that these projects do not use APIs that have been deprecated in Windows 10. 자세한 내용은 Windows 런타임 8에서 UWP로 이동을 참조하세요.For more information, see Move from Windows Runtime 8 to UWP.

Windows 8.1 프로젝트의 대상을 Windows 10으로 다시 지정하도록 선택하는 경우 Visual Studio 프로젝트 포팅, 마이그레이션, 업그레이드를 참조하세요.If you choose to retarget Windows 8.1 projects to Windows 10, see Port, Migrate, and Upgrade Visual Studio Projects

확장 SDK 참조Extension SDK References

확장 SDK가 Windows 10에서 더 이상 사용되지 않는 API를 사용하지 않으면 Visual Basic, C#, C++, JavaScript UWP(유니버설 Windows 플랫폼) 앱은 Windows 8.1Windows 8.1을 대상으로 하는 이러한 확장 SDK를 참조할 수 있습니다.Visual Basic, C#, C++ and JavaScript Universal Windows Platform (UWP) apps can reference Extension SDKs that target Windows 8.1Windows 8.1, as long as these Extension SDKs do not use APIs that have been deprecated in Windows 10. UWP를 대상으로 하는 Microsoft 저장소 프로젝트에서 확장 SDK를 참조할 수 있는지 확인하려면 해당 확장 SDK의 공급업체 사이트를 참조하세요.Please check the Extension SDK vendor site to find out whether it can be referenced by Microsoft Store projects that target UWP.

앱에서 참조하는 확장 SDK가 지원되지 않는 경우 다음 단계를 수행해야 합니다.If you determine that the Extension SDK being referenced by your app is not supported, then you need to perform the following steps:

  1. 오류를 일으키는 프로젝트의 이름을 확인합니다.Look at the name of the project that is causing the error. 프로젝트의 대상 플랫폼이 프로젝트 이름 옆의 괄호 안에 표시됩니다.The platform your project is targeting is noted in parentheses next to the project name. 예를 들어 MyProjectName (Windows 8.1)MyProjectName 프로젝트가 플랫폼 버전 Windows 8.1Windows 8.1을 대상으로 한다는 것을 의미합니다.For example, MyProjectName (Windows 8.1) means that your project MyProjectName is targeting platform version Windows 8.1Windows 8.1.

  2. 지원되지 않는 확장 SDK를 소유한 공급업체의 사이트로 이동하여 프로젝트의 대상 플랫폼 버전과 호환되는 종속성으로 확장 SDK 버전을 설치합니다.Go to the site of the vendor who owns the unsupported Extension SDK and install the version of the Extension SDK with dependencies that are compatible with the version of the platform your project is targeting.

    참고

    다른 확장 SDK에 대한 종속성이 있는 확장 SDK에서 Visual Studio를 다시 시작할지 여부를 확인하려면 새 C# UWP 앱 프로젝트를 만들고, 해당 프로젝트를 마우스 오른쪽 단추를 클릭한 후, 참조 추가를 선택하여, Windows 탭의 확장 하위 탭으로 이동한 후, 확장 SDK를 선택하고, 참조 관리자의 오른쪽 창을 확인합니다.One way to find out whether an Extension SDK has dependencies on other Extension SDKs is to restart Visual Studio, create a new C# UWP app project, right-click on the project and choose Add Reference, go to the Windows tab, go to the Extensions sub-tab, select the Extension SDK and look at the right pane in the Reference Manager. 종속성이 있는 경우 나열됩니다.If it has dependencies, they will be listed there.

    중요

    프로젝트가 Windows 10을 대상으로 하고 이전에 설치된 확장 SDK가 Microsoft Visual C++ 런타임 패키지에 종속된 경우 Windows 10과 호환되는 Microsoft Visual C++ 런타임 패키지의 버전은 v14.0이고 Visual Studio와 함께 설치됩니다.If your project is targeting Windows 10, and the Extension SDK installed in the previous step has a dependency on the Microsoft Visual C++ Runtime Package, the version of Microsoft Visual C++ Runtime Package that is compatible with Windows 10 is v14.0 and is installed with Visual Studio.

  3. 이전에 설치한 확장 SDK가 다른 확장 SDK에 종속된 경우 종속성을 소유한 공급업체의 사이트로 이동하여 프로젝트의 대상 플랫폼 버전과 호환되는 종속성 버전을 설치합니다.If the Extension SDK you installed in the previous step has dependencies on other Extension SDKs, go to the site(s) of the vendor(s) who own the dependencies and install the versions of these dependencies that are compatible with the version of the platform your project is targeting.

  4. Visual Studio를 다시 시작하고 앱을 엽니다.Restart Visual Studio and open your app.

  5. 오류가 발생한 프로젝트에서 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 선택합니다.Right-click on the References node in the project that caused the error and choose Add Reference.

  6. Windows 탭과 확장 하위 탭을 차례로 클릭한 다음 이전 확장 SDK에 대한 확인란의 선택을 취소하고 새 확장 SDK에 대한 확인란을 선택합니다.Click the Windows tab and then the Extensions sub-tab, then uncheck the checkboxes for the old Extension SDKs and check the checkboxes for the new Extension SDKs. 확인을 클릭합니다.Click OK.

디자인 타임에 참조 추가Adding a Reference at Design Time

프로젝트에서 어셈블리에 대한 참조를 만드는 경우 Visual StudioVisual Studio 에서는 다음 위치에서 어셈블리를 검색합니다.When you make a reference to an assembly in your project, Visual StudioVisual Studio searches for the assembly in the following locations:

  • 현재 프로젝트 디렉터리.The current project directory. 이 어셈블리는 찾아보기 탭을 통해 찾을 수 있습니다.(You can find these assemblies by using the Browse tab.)

  • 같은 솔루션에 있는 다른 프로젝트 디렉터리.Other project directories in the same solution. 이러한 어셈블리는 프로젝트 탭에서 찾을 수 있습니다.(You can find these assemblies on the Projects tab.)

참고

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

Visual Studio에서는 System.Core가 참조 목록에서 제거된 경우를 포함한 모든 프로젝트에 System.Core 에 대한 암시적 참조가 포함되어 있습니다.All projects in Visual Studio contain an implied reference to System.Core, even if System.Core is removed from the list of references.

런타임의 공유 구성 요소에 대한 참조References to Shared Components at Run Time

런타임에 구성 요소는 프로젝트의 출력 경로 또는 GAC(전역 어셈블리 캐시)에 있어야 합니다.At run time, components must be either in the output path of the project or in the Global Assembly Cache (GAC). 프로젝트에 이러한 위치 중 하나에 없는 개체에 대한 참조가 포함되어 있는 경우 프로젝트를 빌드할 때 프로젝트의 출력 경로에 대한 참조를 복사해야 합니다.If the project contains a reference to an object that is not in one of these locations, you must copy the reference to the output path of the project when you build the project. <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> 속성은 복사본을 만들 수 있는지 여부를 나타냅니다.The <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> property indicates whether this copy has to be made. 값이 True이면 프로젝트를 빌드할 때 참조가 프로젝트 디렉터리에 복사됩니다.If the value is True, the reference is copied to the project directory when you build the project. 값이 False이면 참조가 복사되지 않습니다.If the value is False, the reference is not copied.

GAC에 등록되어 있는 사용자 지정 구성 요소에 대한 참조가 포함된 응용 프로그램을 배포하는 경우 구성 요소는 <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> 설정과 관계없이 응용 프로그램과 함께 배포되지 않습니다.If you deploy an application that contains a reference to a custom component that is registered in the GAC, the component will not be deployed with the application, regardless of the <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> setting. 이전 버전의 Visual StudioVisual Studio에서는 어셈블리가 배포되었는지 확인하기 위해 참조에 대한 <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> 속성을 설정할 수 있습니다.In earlier versions of Visual StudioVisual Studio, you could set the <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> property on a reference to ensure that the assembly was deployed. 이제 \Bin 폴더에 어셈블리를 수동으로 추가해야 합니다.Now, you must manually add the assembly to the \Bin folder. 그러면 모든 사용자 지정 코드가 조사되어 친숙하지 않은 사용자 지정 코드를 게시할 가능성이 줄어듭니다.This puts all custom code under scrutiny, reducing the risk of publishing custom code with which you are not familiar.

어셈블리 또는 구성 요소를 전역 어셈블리 캐시 내에 있거나 프레임워크 구성 요소인 경우 기본적으로 <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> 속성은 False 입니다.By default, the <xref:Microsoft.VisualStudio.VCProjectEngine.VCProjectReference.CopyLocal%2A> property is set to False if the assembly or component is in the global assembly cache or is a framework component. 그렇지 않으면 이 속성의 값은 True로 설정됩니다.Otherwise, the value is set to True. 프로젝트 간 참조는 항상 True로 설정됩니다.Project-to-project references are always set to True.

다른 버전의.NET Framework를 대상으로 하는 프로젝트 또는 어셈블리 참조Referencing a Project or Assembly That Targets a Different Version of the .NET Framework

다른 .NET Framework 버전을 대상으로 하는 프로젝트나 어셈블리를 참조하는 응용 프로그램을 만들 수 있습니다.You can create applications that reference projects or assemblies that target a different version of the .NET Framework. 예를 들어, .NET Framework 4 Client Profile.NET Framework 4 Client Profile 을 대상으로 하는 어셈블리를 참조하는 .NET Framework 2.0.NET Framework 2.0을 대상으로 하는 응용 프로그램을 만들 수도 있습니다.For example, you could create an application that targets the .NET Framework 4 Client Profile.NET Framework 4 Client Profile that references an assembly that targets .NET Framework 2.0.NET Framework 2.0. 이전 버전의 .NET Framework.NET Framework를 대상으로 하는 프로젝트를 만드는 경우 해당 프로젝트에서 .NET Framework 4 Client Profile.NET Framework 4 Client Profile 또는 .NET Framework 버전 4를 대상으로 하는 프로젝트나 어셈블리에 대한 참조를 설정할 수 없습니다.If you create a project that targets an earlier version of the .NET Framework.NET Framework, you cannot set a reference in that project to a project or assembly that targets the .NET Framework 4 Client Profile.NET Framework 4 Client Profile or .NET Framework version 4.

자세한 내용은 특정 대상 .NET Framework 버전 지정을 참조하세요.For more information, see Targeting a Specific .NET Framework Version.

프로젝트 간 참조Project-to-Project References

프로젝트 간 참조는 어셈블리가 포함된 프로젝트에 대한 참조로, 프로젝트 탭을 사용하여 만들 수 있습니다. 프로젝트에 경로가 지정되면 Visual Studio에서 어셈블리를 찾을 수 있습니다.Project-to-project references are references to projects that contain assemblies; you create them by using the Project tab. Visual Studio can find an assembly when given a path to the project.

어셈블리를 생성하는 프로젝트를 사용하는 경우에는 프로젝트를 참조하고 파일 참조(아래 참조)를 사용하지 말아야 합니다.When you have a project that produces an assembly, you should reference the project and not use a file reference (see below). 프로젝트 간 참조의 이점은 빌드 시스템에서 프로젝트 간의 종속성을 만들 수 있다는 점입니다.The advantage of a project-to-project reference is that it creates a dependency between the projects in the build system. 참조하는 프로젝트가 마지막으로 빌드된 이후 변경된 경우 종속 프로젝트가 빌드됩니다.The dependent project will be built if it has changed since the last time the referencing project was built. 파일 참조는 빌드 종속성을 만들지 않습니다. 따라서 종속 프로젝트를 빌드하지 않고 참조되는 프로젝트를 빌드할 수 있으며 해당 참조가 더 이상 사용되지 않습니다.A file reference does not create a build dependency, so it is possible to build the referencing project without building the dependent project, and the reference can become obsolete. (즉, 프로젝트가 이전에 빌드된 프로젝트 버전을 참조할 수 있습니다.) 그러면 bin 디렉터리에 여러 버전의 단일 DLL이 필요하게 되는데 이것은 불가능합니다.(That is, the project can reference a previously built version of the project.) This can result in several versions of a single DLL being required in the bin directory, which is not possible. 이러한 충돌이 발생하면 "경고: '프로젝트' 프로젝트의 '파일' 종속성을 실행 디렉터리에 복사할 수 없습니다. 그러면 '파일' 참조를 덮어쓰기 때문입니다."와 같은 메시지가 표시됩니다.When this conflict occurs, you will see a message such as "Warning: the dependency 'file' in project 'project' cannot be copied to the run directory because it would overwrite the reference 'file.'". 자세한 내용은 끊어진 참조 문제 해결방법: 프로젝트 종속성 만들기 및 제거를 참조하세요.For more information, see Troubleshooting Broken References and How to: Create and Remove Project Dependencies.

참고

한 프로젝트의 대상 .NET Framework 버전이 버전 4.5이고 다른 프로젝트의 대상 버전이 버전 2, 3, 3.5 또는 4.0인 경우 프로젝트 간 참조 대신 파일 참조가 만들어집니다.A file reference instead of a project-to-project reference is created if the target version of the .NET Framework of one project is version 4.5, and the target version of the other project is version 2, 3, 3.5, or 4.0.

파일 참조File References

파일 참조는 Visual Studio 프로젝트의 컨텍스트 외부에서 어셈블리에 대한 직접 참조로서, 참조 관리자찾아보기탭을 사용하여 만들 수 있습니다.File references are direct references to assemblies outside the context of a Visual Studio project; you create them by using the Browse tab of the Reference Manager. 어셈블리나 구성 요소는 있고 출력으로서 작성하는 프로젝트는 없는 경우 파일 참조를 사용하세요.Use a file reference when you just have an assembly or component and don't have the project that creates it as output.

참고 항목See Also

끊어진 참조 문제 해결 Troubleshooting Broken References
방법: 참조 관리자를 사용하여 참조 추가 또는 제거How to: Add or Remove References By Using the Reference Manager