데스크톱, 모바일, 전화, X 박스, 실버 라이트, 마이크로 등 모든 플랫폼에 하나씩 있습니다. 그리고 올해 하반기에는 ARM 패드가 추가 될 것입니다. 그러나 중요한 것은 아닙니다. 프로그램은 CLR이 아닌 참조 어셈블리에 맞춰 빌드됩니다. 프로그램에서 호출하는 모든 호출은 프레임 워크 메서드 호출이며 절대 CLR 함수를 직접 호출하지 않습니다.
따라서 프로필, c : \ program files \ reference 어셈블리에 저장된 참조 어셈블리 컬렉션. 그들은 플랫폼 경계를 따라 떨어지지 만 추가적인 변형이 있습니다. 데스크톱 앱처럼 전체, 클라이언트 또는 대도시 프로필을 타겟팅 할 수 있습니다. WinRT 타겟팅을 사용하는 참조 어셈블리의 핵심 기능은 유형을 리디렉션 할 수 있다는 것입니다. 그 마법은 [TypeForwardedTo] attribute에 의해 구현됩니다. 당신이 지하철 프로필에 대한 .NET API를 대상으로 할 때
그래서, 참조 어셈블리는 Framework\.NETCore
하위 디렉토리에서 와서 당신은 의 또 다른 세트에 모든 종류의 리디렉션 mscorlib.dll에서 참조 어셈블리에 대한 참조를해야합니다 WinRT 프로젝션을 구현하는 어셈블리 핵심은 System.Runtime.dll 및 System.Runtime.WindowsRuntime.dll 등입니다. Portable Class Library 기능을 가능하게하는 것과 동일한 메커니즘. 더 자세한 내용 here.
감사합니다. 그래서 참조 어셈블리는 실제로 프로그램을 빌드 할 때만 컴파일 타임에 사용됩니까? 이것의 배후에있는 메커니즘은 타겟 프로파일에 포함되어 있지 않은 함수/타입을 호출하거나 참조하지 않도록합니다. 예 : 실버 라이트? – danielovich
정확히. 그리고 "우연히 유형을 사용하지 말고"런타임에 대 체를 입력하십시오. –
Silverlight의 참조 어셈블리를 살펴보면 mscorlib (예를 들어)는 Metro 또는 Portable 프로필의 mscorlib보다 훨씬 큰 크기입니다. 물론 전체 프레임 워크보다 작습니다. 그러나 Silverlight 프로필과 관련하여 .NET이 현명한 다른 이야기이기 때문에 그렇습니까? – danielovich