다음을 통해 공유


디자인 타임에 어셈블리 확인

참조 대화상자 추가의 .NET 탭을 통해 어셈블리에 참조를 추가할 때, 참조는 중간 참조 어셈블리를 가르킵니다. 이것은 모든 형식과 시그니처 정보를 포함하는 어셈블리이지만 필수적으로 어떤 코드를 포함하지는 않습니다. .NET 탭에는 .NET 프레임워크의 런타임 어셈블리에 대응하는 참조 어셈블리가 나열됩니다. 또한 타사에서 사용하는 등록된 AssemblyFoldersEx 폴더에 있는 런타임 어셈블리에 대응하는 참조 어셈블리도 나열됩니다.

다중 대상 지정

Visual Studio 2013 은 CLR(공용 언어 런타임) 버전 2.0 또는 4 중 하나에서 실행하는 .NET Framework의 버전을 대상으로 지정할 수 있게 합니다. 이것은 .NET Framework 버전 2.0, 3.0, 3.5, 4 및 Silverlight 버전 1.0, 2.0, 3.0을 포함합니다. CLR 버전 2.0 또는 4에 기반하는 새 .NET Framework 버전이 릴리스될 경우 이 프레임워크는 대상 지정 팩을 사용하여 설치될 수 있으며 자동으로 Visual Studio에서 대상으로 표시됩니다.

형식 확인 작동 방식

런타임에 CLR은 GAC, bin 디렉터리 및 모든 검색 경로를 탐색하여 어셈블리에서 형식을 확인합니다. 이 탐색 과정은 퓨전 로더에서 처리합니다. 이 퓨전 로더는 찾을 대상을 파악할 때 응용 프로그램이 빌드되는 디자인 타임에 수행되는 확인에 의존합니다.

빌드 중에 컴파일러는 참조 어셈블리를 사용하여 응용 프로그램 형식을 확인합니다. .NET Framework 버전 2.0, 3.0, 3.5, 4, 4.5, 및 4.5.1 에서, .NET Framework가 설치 될 때 참조 어셈블리가 설치됩니다.

참조 어셈블리가 대상 팩에서 제공되는. NET Framework SDK의 해당 버전과 함께 제공됩니다. 프레임워크 자체에서 제공하는 것은 런타임 어셈블리뿐입니다. 응용 프로그램을 빌드하려면 .NET Framework 및 상응하는 .NET Framework SDK를 설치해야 합니다.

특정 .NET Framework를 대상으로 지정할 경우 빌드 시스템에서는 대상 지정 팩에 있는 참조 어셈블리를 사용하여 모든 형식을 확인합니다. 런타임에 퓨전 로더는 이와 같은 동일한 형식을 런타임 어셈블리로 확인하게 되고, 이러한 어셈블리는 일반적으로 GAC에 있습니다.

참조 어셈블리를 사용할 수 없는 경우 빌드 시스템에서는 런타임 어셈블리를 사용하여 어셈블리 형식을 확인합니다. GAC의 런타임 어셈블리는 부 버전 번호로 구분되지 않기 때문에 어셈블리가 잘못 확인될 수도 있습니다. 예를 들어 대상 버전이 3.0인 상태에서 .NET Framework 버전 3.5에 새로 도입된 메서드를 참조할 경우 어셈블리가 잘못 확인될 수 있습니다. 이 경우에도 빌드에 성공하고 응용 프로그램이 빌드 컴퓨터에서 실행되기는 하지만 버전 3.5가 설치되지 않은 컴퓨터에 배포하면 실행되지 않습니다.

대상 지정 팩은 이제 .NET Framework SDK와 함께 제공되며 이 팩에는 해당 프레임워크와 동일한 버전의 모든 런타임 어셈블리 목록, 즉 재배포 목록이 포함되어 있습니다. 따라서 빌드 시스템에서 잘못된 버전의 어셈블리로 형식을 확인하는 문제가 발생하지 않습니다.

참고 항목

기타 리소스

MSBuild 고급 개념