방법: 참조 관리자를 사용하여 참조 추가 또는 제거How to: add or remove references by using the Reference Manager

참조 관리자 대화 상자를 사용하여 사용자가 개발했거나 Microsoft 또는 타사에서 개발한 구성 요소에 대한 참조를 추가하고 관리할 수 있습니다.You can use the Reference Manager dialog box to add and manage references to components that you, Microsoft, or another company developed. 유니버설 Windows 앱을 개발하는 경우 프로젝트에서 올바른 모든 Windows SDK DLL을 자동으로 참조합니다.If you're developing a Universal Windows app, your project automatically references all of the correct Windows SDK DLLs. .NET 응용 프로그램을 개발하는 경우 프로젝트에서 자동으로 mscorlib.dll을 참조합니다.If you are developing a .NET application, your project automatically references mscorlib.dll. 일부 .NET API는 수동으로 추가해야 하는 구성 요소에서 노출됩니다.Some .NET APIs are exposed in components that you have to add manually. COM 구성 요소 또는 사용자 지정 구성 요소에 대한 참조를 수동으로 추가해야 합니다.References to COM components or custom components have to be added manually.

참조 관리자 대화 상자Reference Manager dialog box

프로젝트 형식에 따라 참조 관리자 대화 상자의 왼쪽에 다음과 같은 다양한 범주가 표시됩니다.The Reference Manager dialog box shows different categories on the left side, depending on the project type:

  • 어셈블리에는 프레임워크 및 확장 하위 그룹이 포함됩니다.Assemblies, with the Framework and Extensions subgroups.

  • COM 탭에는 참조에 사용할 수 있는 모든 COM 구성 요소가 나열됩니다.COM, lists all COM components that are available for referencing.

  • 솔루션에는 프로젝트 하위 그룹이 포함됩니다.Solution, with the Projects subgroup.

  • Windows에는 핵심 및 확장명 하위 그룹이 포함됩니다.Windows, with the Core and Extensions subgroups. 개체 브라우저를 사용하여 Windows SDK 또는 확장명 SDK에서 참조를 탐색할 수 있습니다.You can explore the references in the Windows SDK or extension SDKs by using the Object Browser.

  • 찾아보기에는 최근 항목 하위 그룹이 포함됩니다.Browse, with the Recent subgroup.

참조 추가 및 제거Adding and removing a reference

참조를 추가하려면To add a reference

  1. 솔루션 탐색기에서 참조 노드를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.In Solution Explorer, right-click on the References node and choose Add Reference.

  2. 추가할 참조를 지정한 다음 확인 단추를 선택합니다.Specify the references to add, and then choose the OK button.

    참조 관리자가 열리고 사용 가능한 참조 목록이 그룹별로 나열됩니다.Reference Manager opens and lists the available references by group.

어셈블리 탭Assemblies tab

어셈블리 탭은 참조에 사용할 수 있는 .NET Framework 어셈블리를 모두 나열합니다.The Assemblies tab lists all .NET Framework assemblies that are available for referencing. 어셈블리 탭에는 GAC(전역 어셈블리 캐시)의 어셈블리는 표시되지 않습니다. GAC의 어셈블리는 런타임 환경의 일부이기 때문입니다.The Assemblies tab doesn't list any assemblies from the global assembly cache (GAC) because assemblies in the GAC are part of the run-time environment. GAC에 등록된 어셈블리에 대한 참조가 포함된 응용 프로그램을 배포하거나 복사하는 경우, 이 어셈블리는 로컬 복사 설정과 관계없이 응용 프로그램과 함께 배포되거나 복사되지 않습니다.If you deploy or copy an application that contains a reference to an assembly that's registered in the GAC, the assembly won't be deployed or copied with the application, regardless of the Copy Local setting. 자세한 내용은 프로젝트의 참조 관리를 참조하세요.For more information, see Managing references in a project.

EnvDTE 네임스페이스(EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a 또는 EnvDTE100)에 대한 참조를 수동으로 추가할 때는 [속성] 창에서 참조의 Interop 형식 포함 속성을 False로 설정합니다.When you manually add a reference to any of the EnvDTE namespaces (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a, or EnvDTE100), set the Embed Interop Types property of the reference to False in the Properties window. 이 속성을 True로 설정하면 포함할 수 없는 특정 EnvDTE 속성으로 인해 빌드 문제가 발생할 수 있습니다.Setting this property to True can cause build issues because of certain EnvDTE properties that can't be embedded.

모든 데스크톱 프로젝트에는 mscorlib에 대한 암시적 참조가 포함되어 있습니다.All desktop projects contain an implicit reference to mscorlib. Visual BasicVisual Basic 프로젝트에는 Microsoft.VisualBasic에 대한 암시적 참조가 포함되어 있습니다. projects contain an implicit reference to Microsoft.VisualBasic. System.Core가 참조 목록에서 제거되더라도 모든 프로젝트에 System.Core에 대한 암시적 참조가 포함되어 있습니다.All projects contain an implicit reference to System.Core, even if it's removed from the list of references.

프로젝트 형식이 어셈블리를 지원하지 않으면 참조 관리자 대화 상자에 이 탭이 나타나지 않습니다.If a project type doesn't support Assemblies, the tab won't appear in the Reference Manager dialog box.

어셈블리 탭은 다음 두 개의 하위 탭으로 구성됩니다.The Assemblies tab consists of two sub-tabs:

  1. 프레임워크 탭에는 대상 프레임워크를 구성하는 모든 어셈블리가 나열됩니다.Framework lists all assemblies that constitute the targeted Framework.

    Windows 8.x 스토어Windows 8.x Store 앱용 프로젝트에는 프로젝트 생성 시 기본적으로 대상 Windows 8.x 앱용 .NET.NET for Windows 8.x apps의 모든 어셈블리에 대한 참조가 포함됩니다.Projects for Windows 8.x 스토어Windows 8.x Store apps contain references to all of the assemblies in the targeted Windows 8.x 앱용 .NET.NET for Windows 8.x apps by default on project creation. 관리 프로젝트에서 솔루션 탐색기의 참조 폴더 아래에 있는 읽기 전용 노드는 전체 프레임워크에 대한 참조를 나타냅니다.In managed projects, a read-only node under the References folder in Solution Explorer indicates the reference to the entire Framework. 따라서 [프레임워크] 탭은 프레임워크의 어떠한 어셈블리도 열거하지 않고 대신 다음과 같은 메시지를 표시합니다. “모든 프레임워크 어셈블리가 이미 참조되었습니다.Accordingly, the Framework tab won't enumerate any of the assemblies from the Framework and instead display the following message: "All of the Framework assemblies are already referenced. 개체 브라우저를 사용하여 프레임워크에서 참조를 탐색하세요.”Please use the Object Browser to explore the references in the Framework." 데스크톱 프로젝트의 경우, 프레임워크 탭은 대상 프레임워크의 어셈블리를 열거하고 사용자는 응용 프로그램에 필요한 참조를 추가해야 합니다.For desktop projects, the Framework tab enumerates assemblies from the targeted Framework, and the user must add the references that the application requires.

  2. 확장 탭에는 구성 요소 및 컨트롤의 외부 공급업체가 개발하고 대상 프레임워크를 확장한 모든 어셈블리가 나열됩니다.Extensions lists all assemblies that external vendors of components and controls have developed to extend the targeted Framework. 사용자 응용 프로그램의 목적에 따라 이러한 어셈블리가 필요할 수 있습니다.Depending on the purpose of the user application, it might need these assemblies.

    • 확장명 하위 탭은 다음 위치에 등록된 어셈블리를 열거하여 채워집니다.Extensions is populated by enumerating the assemblies that are registered in the following locations:

      32-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]  
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]  
      64-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]  
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]  
      And older versions of the [Target Framework Identifier]  
      

      예를 들어, 프로젝트가 32비트 컴퓨터에서 .NET Framework 4를 대상으로 지정하는 경우, 확장명 하위 탭은 \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\ 및 \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\에서 등록된 어셈블리를 열거합니다.For example, if a project targets the .NET Framework 4 on a 32-bit machine, Extensions will enumerate assemblies that are registered under \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\, and \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.

프로젝트의 .NET Framework.NET Framework 버전에 따라 목록의 일부 구성 요소는 표시되지 않을 수 있습니다.Some components in the list may not be shown, depending on the .NET Framework.NET Framework version of your project. 이 비동기화는 다음과 같은 경우에 발생할 수 있습니다.This can occur under the following conditions:

  • 최신 버전의 .NET Framework를 사용하는 구성 요소는 이전 버전의 .NET Framework를 대상으로 하는 프로젝트와 호환되지 않습니다.A component that uses a recent version of the .NET Framework is incompatible with a project that targets an earlier version of the .NET Framework.

    프로젝트의 대상 .NET Framework 버전을 변경하는 방법에 대한 자세한 내용은 방법: 한 버전의 .NET Framework를 대상으로 지정을 참조하세요.For information about how to change the target .NET Framework version for a project, see How to: Target a Version of the .NET Framework.

  • .NET Framework 4.NET Framework 4를 사용하는 구성 요소는 .NET Framework 4.5.NET Framework 4.5을 대상으로 하는 프로젝트와 호환되지 않습니다.A component that uses .NET Framework 4.NET Framework 4 is incompatible with a project that targets the .NET Framework 4.5.NET Framework 4.5.

    새 응용 프로그램을 만들면 기본적으로 일부 프로젝트가 .NET Framework 4.5.NET Framework 4.5을 대상으로 합니다.When you create a new application, some projects target the .NET Framework 4.5.NET Framework 4.5 by default.

  • 동일한 솔루션에 있는 다른 프로젝트의 출력에 대한 파일 참조를 추가하면 컴파일 오류가 발생할 수 있으므로 이 방법은 사용하지 않는 것이 좋습니다.You should avoid adding file references to outputs of another project in the same solution, because doing this may cause compilation errors. 대신 참조 추가 대화 상자의 프로젝트 탭을 사용하여 프로젝트 간 참조를 만듭니다.Instead, use the Projects tab of the Add Reference dialog box to create project-to-project references. 이렇게 하면 프로젝트에서 만드는 클래스 라이브러리를 보다 효율적으로 관리할 수 있으므로 개발 팀이 작업하기가 간편해집니다.This makes team development easier by enabling better management of the class libraries you create in your projects. 자세한 내용은 끊어진 참조 문제 해결을 참조하세요.For more information, see Troubleshooting Broken References.

참고

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

참조 추가 대화 상자에서 어셈블리를 표시하려면To display an assembly in the Add Reference dialog box

  • 다음 위치 중 하나로 어셈블리를 이동하거나 복사합니다.Move or copy the assembly to one of 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 by using the Projects tab.)

      - 또는 -- or -

  • 표시할 어셈블리의 위치를 지정하는 레지스트리 키를 설정합니다.Set a registry key that specifies the location of assemblies to display:

    32비트 운영 체제의 경우 다음 레지스트리 키 중 하나를 추가합니다.For a 32-bit operating system, add one of the following registry keys.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

      64비트 운영 체제의 경우에는 32비트 레지스트리 하이브에 포함된 다음 레지스트리 키 중 하나를 추가합니다.For a 64-bit operating system, add one of the following registry keys in a 32-bit registry hive.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

      VersionMinimum은 적용되는 최하위 .NET Framework 버전입니다.VersionMinimum is the lowest .NET Framework version that applies. VersionMinimum이 v3.0인 경우 AssemblyFoldersEx에 지정된 폴더는 .NET Framework 3.0 이상을 대상으로 하는 프로젝트에 적용됩니다.If VersionMinimum is v3.0, folders specified in AssemblyFoldersEx apply to projects that target .NET Framework 3.0 and later.

      AssemblyLocation참조 추가 대화 상자에 표시하려는 어셈블리의 디렉터리(예: C:\MyAssemblies\)입니다.AssemblyLocation is the directory of the assemblies that you want to appear in the Add Reference dialog box, for example, C:\MyAssemblies\.

      HKEY_LOCAL_MACHINE 노드 아래에 레지스트리 키를 만들면 모든 사용자가 참조 추가 대화 상자에서 지정된 위치의 어셈블리를 볼 수 있습니다.Creating the registry key under the HKEY_LOCAL_MACHINE node allows all users to see the assemblies in the specified location in the Add Reference dialog box. HKEY_CURRENT_USER 노드 아래에 레지스트리 키를 만들면 현재 사용자에 대한 설정에만 영향을 줍니다.Creating the registry key under the HKEY_CURRENT_USER node affects only the setting for the current user.

      참조 추가 대화 상자를 다시 엽니다.Open the Add Reference dialog box again. 어셈블리가 .NET 탭에 나타나야 합니다. 어셈블리가 나타나지 않으면 지정된 AssemblyLocation 디렉터리에 어셈블리가 있는지 확인하고 Visual Studio를 다시 시작한 후 다시 시도합니다.The assemblies should appear on the .NET tab. If they do not, make sure that the assemblies are located in the specified AssemblyLocation directory, restart Visual Studio, and try again.

COM 탭COM tab

COM 탭은 참조에 사용할 수 있는 COM 구성 요소를 모두 나열합니다.The COM tab lists all COM components that are available for referencing. 내부 매니페스트가 포함된 등록 COM DLL에 참조를 추가하려는 경우 해당 DLL의 등록을 먼저 해제합니다.If you want to add a reference to a registered COM DLL that contains an internal manifest, unregister the DLL first. 그렇지 않으면 네이티브 DLL 대신 ActiveX 컨트롤 같은 어셈블리 참조가 추가됩니다.Otherwise, Visual Studio adds the assembly reference as an ActiveX Control instead of as a native DLL.

프로젝트 형식이 COM을 지원하지 않으면 참조 관리자 대화 상자에 이 탭이 나타나지 않습니다.If a project type doesn't support COM, the tab won't appear in the Reference Manager dialog box.

솔루션 탭Solution tab

솔루션 탭은 프로젝트 하위 탭에 현재 솔루션 내 모든 호환 가능한 프로젝트를 나열합니다.The Solution tab lists all compatible projects within the current solution, in the Projects sub-tab.

프로젝트는 다른 버전의 .NET Framework를 대상으로 하는 다른 프로젝트를 참조할 수 있습니다.A project can reference another project that targets a different version of the .NET Framework. 예를 들어, .NET Framework 4.NET Framework 4를 대상으로 하지만 .NET Framework 2용으로 빌드된 어셈블리를 참조하는 프로젝트를 만들 수 있습니다.For example, you could create a project that targets the .NET Framework 4.NET Framework 4 but that references an assembly that's been built for the .NET Framework 2. 그러나 .NET Framework 2 프로젝트는 .NET Framework 4.NET Framework 4 프로젝트를 참조할 수 없습니다.However, the .NET Framework 2 project can't reference a .NET Framework 4.NET Framework 4 project. 자세한 내용은 특정 대상 .NET Framework 버전 지정을 참조하세요.For more information, see Targeting a Specific .NET Framework Version.

.NET Framework 4.NET Framework 4를 대상으로 하는 프로젝트는 .NET Framework 4 Client Profile.NET Framework 4 Client Profile을 대상으로 하는 프로젝트와 호환되지 않습니다.A project that targets the .NET Framework 4.NET Framework 4 is incompatible with a project that targets the .NET Framework 4 Client Profile.NET Framework 4 Client Profile.

한 프로젝트가 .NET Framework 4를 대상으로 하고 또 다른 프로젝트가 이전 버전을 대상으로 하는 경우 프로젝트 참조 대신 파일 참조가 만들어집니다.A file reference is created instead of a project reference if one project targets the .NET Framework 4 and another project targets an earlier version.

Windows 8.x 앱용 .NET.NET for Windows 8.x apps을 대상으로 하는 프로젝트는 .NET Framework를 대상으로 하는 프로젝트에 프로젝트 참조를 추가할 수 없으며 그 반대의 경우도 마찬가지입니다.A project that targets Windows 8.x 앱용 .NET.NET for Windows 8.x apps can't add a project reference to a project that targets the .NET Framework, and vice versa.

Windows 탭Windows tab

Windows 탭은 Windows 운영 체제를 실행하는 플랫폼에 관련된 모든 SDK를 나열합니다.The Windows tab lists all SDKs that are specific to platforms on which Windows operating systems run.

다음 두 가지 방법으로 Visual Studio의 WinMD 파일을 생성할 수 있습니다.You can generate a WinMD file in Visual Studio in two ways:

  • Windows 8.x 스토어Windows 8.x Store 앱 관리 프로젝트: Windows 8.x 스토어Windows 8.x Store 앱 프로젝트는 프로젝트 속성 | 출력 형식 = WinMD 파일로 설정하여 WinMD 이진 파일을 출력할 수 있습니다.Windows 8.x 스토어Windows 8.x Store app managed projects: Windows 8.x 스토어Windows 8.x Store app projects can output WinMD binaries by setting Project Properties | Output Type = WinMD File. WinMD 파일 이름은 안에 있는 모든 네임스페이스의 상위 네임스페이스여야 합니다.The WinMD filename must be the superset namespace of all the namespaces that exist within it. 예를 들어, 프로젝트가 네임스페이스 A.B 및 A.B.C로 구성된 경우 해당 출력 WinMD의 가능한 이름은 A.winmd 및 A.B.winmd입니다.For example, if a project consists of namespaces A.B and A.B.C, the possible names for its outputted WinMD are A.winmd and A.B.winmd. 사용자가 프로젝트의 네임스페이스 집합과 연결되지 않은 “프로젝트 속성 | 어셈블리 이름” 또는 “프로젝트 속성 | 네임스페이스” 값을 입력하거나, 프로젝트 내에 상위 네임스페이스가 없는 경우, 다음과 같은 빌드 경고가 발생합니다. ‘A.winmd’는 이 어셈블리에 유효한 .winmd 파일 이름이 아닙니다.If a user enters a Project Properties | Assembly Name or Project Properties | Namespace value that's disjoint from the set of namespaces in the project or there is no superset namespace within a project, a build warning is generated: 'A.winmd' isn't a valid .winmd file name for this assembly. Windows 메타데이터 파일 내의 모든 형식은 파일 이름의 하위 네임스페이스에 있어야 합니다.All types within a Windows Metadata file must exist in a sub namespace of the file name. 파일 이름의 하위 네임스페이스에 없는 형식은 런타임에 찾을 수 없습니다.Types that don't exist in a sub namespace of the file name won't be able to be located at runtime. 이 어셈블리에서 가장 작은 공통 네임스페이스는 'CSWSClassLibrary1'입니다.In this assembly, the smallest common namespace is 'CSWSClassLibrary1'. Visual Basic 또는 Visual C# 데스크톱 프로젝트는 자사 WinMD로 알려진 Windows 8Windows 8 SDK를 사용하여 생성된 WinMD만 사용할 수 있으며, WinMD를 생성할 수 없습니다.A desktop Visual Basic or Visual C# project can only consume WinMDs that are generated by using the Windows 8Windows 8 SDKs, which are known as first-party WinMDs, and can't generate WinMDs.

  • Windows 8.x 스토어Windows 8.x Store 앱 네이티브 프로젝트: 네이티브 WinMD 파일은 메타데이터만으로 구성됩니다.Windows 8.x 스토어Windows 8.x Store app native projects: A native WinMD file consists of only metadata. 해당 구현은 별도 DLL 파일에 있습니다.Its implementation exists in a separate DLL file. 새 프로젝트 대화 상자의 Windows 런타임 구성 요소 프로젝트 템플릿을 선택하거나, 빈 프로젝트에서 시작해 프로젝트 속성을 수정하여 WinMD 파일을 생성함으로써 네이티브 이진 파일을 만들 수 있습니다.One can produce native binaries by choosing the Windows Runtime Component project template in the New Project dialog box or by starting from a blank project and modifying the project properties to generate a WinMD file. 프로젝트가 연결되지 않은 네임스페이스로 구성된 경우, 빌드 오류로부터 그러한 네임스페이스를 결합하거나 MSMerge 도구를 실행하는 사용자를 확인할 수 있습니다.If the project consists of disjoint namespaces, a build error will tell the user to combine their namespaces or run the MSMerge tool.

Windows 탭은 다음 두 개의 하위 그룹으로 구성됩니다.The Windows tab consists of two subgroups.

핵심 하위 그룹Core subgroup

핵심 하위 그룹은 대상 버전의 Windows용 SDK에 있는 WinMD(Windows 런타임 요소용)를 모두 나열합니다.The Core subgroup lists all of the WinMDs (for Windows Runtime elements) in the SDK for the targeted version of Windows.

Windows 8.x 스토어Windows 8.x Store 앱 프로젝트에는 프로젝트 생성 시 기본적으로 Windows 8Windows 8의 모든 WinMD에 대한 참조가 포함됩니다. app projects contain references to all of the WinMDs in the Windows 8Windows 8 SDK by default on project creation. 관리 프로젝트에서 솔루션 탐색기의 참조 폴더 아래에 있는 읽기 전용 노드는 전체 Windows 8Windows 8 SDK에 대한 참조를 나타냅니다.In managed projects, a read-only node under the References folder in Solution Explorer indicates the reference to the entire Windows 8Windows 8 SDK. 따라서 참조 관리자의 핵심 하위 그룹은 Windows 8Windows 8 SDK의 어떠한 어셈블리도 열거하지 않고 대신 다음과 같은 메시지를 표시합니다. “Windows SDK가 이미 참조되었습니다.Accordingly, the Core subgroup in the Reference Manager won't enumerate any of the assemblies from the Windows 8Windows 8 SDK and instead displays a message: "The Windows SDK is already referenced. 개체 브라우저를 사용하여 Windows SDK에서 참조를 탐색하세요.”Please use the Object Browser to explore the references in the Windows SDK."

데스크톱 프로젝트에서 핵심 하위 그룹은 기본적으로 표시되지 않습니다.In the desktop projects, the Core subgroup doesn't appear by default. 프로젝트 노드에 대한 바로 가기 메뉴를 열고, 프로젝트 언로드를 선택하고, 다음 코드 조각을 추가하고, 프로젝트를 다시 열어(프로젝트 노드에서 프로젝트 다시 로드 선택) Windows 런타임을 추가할 수 있습니다.You can add the Windows Runtime by opening the shortcut menu for the project node, choosing Unload Project, adding the following snippet, and re-opening the project (on the project node, choose Reload Project). 참조 관리자 대화 상자를 호출하면 핵심 하위 그룹이 나타납니다.When you invoke the Reference Manager dialog box, the Core subgroup appears.

<PropertyGroup>
  <TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>

이 하위 그룹의 Windows 확인란이 선택되어 있는지 확인합니다.Make sure to select the Windows check box on this subgroup. 이 경우 Windows 런타임 요소를 사용할 수 있어야 합니다.You should then be able to use Windows Runtime elements. 그러나, Windows 런타임 라이브러리에서 사용되는 IEnumerable과 같은 일부 표준 클래스 및 인터페이스를 Windows 런타임에서 정의하는 경우, System.Runtime도 추가하려 할 수 있습니다.However, you'll also want to add System.Runtime, in which the Windows Runtime defines some standard classes and interfaces, such as IEnumerable, that are used throughout the Windows Runtime libraries. System.Runtime을 추가하는 방법은 관리되는 데스크톱 앱 및 Windows 런타임을 참조하세요.For information about how to add System.Runtime, see Managed desktop apps and Windows Runtime.

확장 하위 그룹Extensions subgroup

확장 하위 그룹은 대상 Windows 플랫폼을 확장하는 사용자 SDK를 나열합니다.Extensions lists the user SDKs that extend the targeted Windows platform. 이 탭은 Windows 8.x 스토어Windows 8.x Store 앱 프로젝트의 경우에만 나타납니다.This tab appears for Windows 8.x 스토어Windows 8.x Store app projects only. 데스크톱 프로젝트의 경우 자사 .winmd 파일만 사용할 수 있으므로 이 탭이 표시되지 않습니다.Desktop projects won't show this tab because they can consume only first-party .winmd files.

SDK는 Visual Studio에서 단일 구성 요소로 처리하는 파일의 컬렉션입니다.An SDK is a collection of files that Visual Studio treats as a single component. [확장명] 탭에서, 참조 관리자 대화 상자가 호출된 프로젝트에 적용되는 SDK는 단일 항목으로 나열됩니다.In the Extensions tab, SDKs that apply to the project from which the Reference Manager dialog box was invoked are listed as single entries. SDK 콘텐츠는 프로젝트에 추가되면 모두 Visual Studio에서 사용되므로 IntelliSense, 도구 상자, 디자이너, 개체 브라우저, 빌드, 배포, 디버깅, 패키지의 SDK 콘텐츠를 활용하기 위해 사용자가 어떠한 추가 작업도 수행할 필요가 없습니다.When added to a project, all of the SDK content is consumed by Visual Studio such that the user doesn't need to take any further actions to leverage the SDK contents in IntelliSense, toolbox, designers, Object Browser, build, deployment, debugging, and packaging. [확장명] 탭에서 SDK를 표시하는 방법은 방법: 소프트웨어 개발 키트 만들기를 참조하세요.For information about how to display your SDK in the Extensions tab, see Creating a Software Development Kit.

참고

프로젝트가 다른 SDK에 종속적인 SDK를 참조하는 경우, Visual Studio에서는 사용자가 수동으로 두 번째 SDK에 대한 참조를 추가하지 않는 한 두 번째 SDK가 사용되지 않습니다.If a project references an SDK that depends on another SDK, Visual Studio won't consume the second SDK unless the user manually adds a reference to the second SDK. 사용자가 확장명 탭에서 SDK를 선택하면, 참조 관리자 대화 상자를 통해 사용자는 SDK의 이름 및 버전뿐만 아니라 세부 정보 창에서 SDK 종속성의 이름을 나열하여 SDK 종속성을 식별할 수 있습니다.When a user chooses an SDK on the Extensions tab, the Reference Manager dialog box helps the user identify SDK dependencies by listing not only the name and version of the SDK but also the name of any SDK dependencies in the details pane. 사용자가 종속성을 알리지 않고 해당 SDK를 추가하는 경우, MSBuild에서는 사용자에게 종속성을 추가하라는 메시지를 표시합니다.If a user doesn't notice the dependencies and only adds that SDK, MSBuild will prompt the user to add the dependencies.

프로젝트 형식이 확장을 지원하지 않으면 참조 관리자 대화 상자에 이 탭이 나타나지 않습니다.If a project type doesn't support Extensions, the tab doesn't appear in the Reference Manager dialog box.

찾아보기 단추Browse button

찾아보기 단추를 사용하여 파일 시스템의 구성 요소를 찾아볼 수 있습니다.You can use the Browse button to browse for a component in the file system.

프로젝트는 다른 버전의 .NET Framework를 대상으로 하는 구성 요소를 참조할 수 있습니다.A project can reference a component that targets a different version of the .NET Framework. 예를 들어, .NET Framework 2를 대상으로 하는 구성 요소를 참조하는 .NET Framework 4 Client Profile을 대상으로 하는 응용 프로그램을 만들 수 있습니다.For example, you could create an application that targets the .NET Framework 4 Client Profile, which references a component that targets the .NET Framework 2. 자세한 내용은 특정 대상 .NET Framework 버전 지정을 참조하세요.For more information, see Targeting a Specific .NET Framework Version.

동일한 솔루션에 있는 다른 프로젝트의 출력에 대한 파일 참조를 추가하면 컴파일 오류가 발생할 수 있으므로 이 방법은 사용하지 않는 것이 좋습니다.You should avoid adding file references to outputs of another project in the same solution, because this tactic may cause compilation errors. 대신 참조 관리자 대화 상자의 솔루션 탭을 사용하여 프로젝트 간 참조를 만듭니다.Instead, use the Solution tab of the Reference Manager dialog box to create project-to-project references. 이렇게 하면 프로젝트에서 만드는 클래스 라이브러리를 보다 효율적으로 관리할 수 있으므로 개발 팀이 작업하기가 간편해집니다.This makes team development easier by enabling better management of the class libraries that you create in your projects. 자세한 내용은 끊어진 참조 문제 해결을 참조하세요.For more information, see Troubleshooting Broken References.

SDK를 찾아 프로젝트에 추가할 수는 없습니다.You can't browse to an SDK and add it to your project. 파일(예: 어셈블리 또는 .winmd)만 찾아 프로젝트에 추가할 수 있습니다.You can only browse to a file (for example, an assembly or .winmd) and add it to your project.

WinMD에 대한 파일 참조를 수행하는 경우, 예상되는 레이아웃은 FileName.winmd, FileName.dll 및 FileName.pri 파일이 모두 나란히 배치되는 것입니다.When doing a file reference to a WinMD, the expected layout is that the FileName.winmd, FileName.dll, and FileName.pri files are all placed alongside each other. 다음과 같은 시나리오에서 WinMD를 참조하는 경우, 불완전한 파일 집합이 프로젝트 출력 디렉터리에 복사되고, 그에 따라 빌드 및 런타임 오류가 발생합니다.If you reference a WinMD in the following scenarios, an incomplete set of files will be copied into the project output directory and, consequently, build and runtime failures will occur.

  • 기본 구성 요소: 네이티브 프로젝트에서는 연결되지 않은 네임스페이스 집합 각각에 대한 하나의 WinMD 및 그 구현으로 구성된 하나의 DLL을 만듭니다.Native component: a native project will create one WinMD for each disjoint set of namespaces and one DLL that consists of the implementation. WinMD는 서로 다른 이름을 갖게 됩니다.The WinMDs will have disparate names. 이 기본 구성 요소 파일을 참조하는 경우, MSBuild에서는 서로 다른 이름을 가진 WinMD에서 하나의 구성 요소를 만드는 것을 인식하지 못합니다.When referencing this native component file, MSBuild won't recognize that the dissimilarly named WinMDs make one component. 따라서 동일한 이름의 FileName.dll 및 FileName.winmd만 복사되어 런타임 오류가 발생합니다.Consequently, only the identically named FileName.dll and FileName.winmd will be copied, and runtime errors will occur. 이 문제를 해결하기 위해서는 확장명 SDK를 만듭니다.To work around this issue, create an Extension SDK. 자세한 내용은 소프트웨어 개발 키트 만들기를 참조하세요.For more information, see Creating a Software Development Kit.

  • 컨트롤 사용: XAML 컨트롤은 최소한 FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml 및 ImageName.jpg로 구성됩니다.Consuming controls: at a minimum, a XAML control consists of a FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml, and an ImageName.jpg. 프로젝트를 빌드할 때 파일 참조와 연관된 리소스 파일은 프로젝트의 출력 디렉터리에 복사되지 않고 FileName.winmd, FileName.dll 및 FileName.pri만 복사됩니다.When the project is built, the resource files that are associated with the file reference won't get copied into the project's output directory, and only FileName.winmd, FileName.dll and FileName.pri will be copied. 빌드 오류가 기록되어 사용자에게 리소스 XamlName.xaml 및 ImageName.jpg가 누락되었음을 알려줍니다.A build error is logged to inform the user that the resources XamlName.xaml and ImageName.jpg are missing. 성공적으로 빌드하려면 사용자는 이러한 리소스 파일을 수동으로 빌드 및 디버깅/런타임용 프로젝트 출력 디렉터리에 복사해야 합니다.To succeed, the user will have to manually copy these resource files into the project output directory for build and debugging/runtime. 이 문제를 해결하려면 소프트웨어 개발 키트 만들기의 단계에 따라 확장명 SDK를 만들거나, 프로젝트 파일을 편집하여 다음 속성을 추가합니다.To work around this issue, either create an Extension SDK by following the steps in Creating a Software Development Kit or edit the project file to add the following property:

    <PropertyGroup>
       <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    참고

    이 속성을 추가하면 빌드 실행이 느려질 수 있습니다.If you add the property, the build might run slower.

최근 항목Recent

어셈블리, COM, Windows 및 찾아보기 탭 각각은 최근에 프로젝트에 추가된 구성 요소의 목록을 열거하는 최근 항목 탭을 지원합니다.Assemblies, COM, Windows, and Browse each support a Recent tab, which enumerates the list of components that were recently added to projects.

참조 관리자 대화 상자의 검색 창은 포커스가 있는 탭에 대해서 작동합니다.The search bar in the Reference Manager dialog box operates over the tab that's in focus. 예를 들어, 사용자가 솔루션 탭에 포커스가 있을 때 검색 창에 “System”을 입력한 경우, “System”을 포함하는 프로젝트 이름으로 구성된 솔루션이 아닌 한 어떠한 검색 결과도 반환되지 않습니다.For example, if a user types "System" in the search bar while the Solution tab is in focus, the search won't return any results unless the solution consists of a project name that contains "System".

참고 항목See also

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