에 targetFramework
존재 하는 이유는 web.config
.NET Framework의 각 버전에 대한 주요 변경 사항간에 호환성 문제를 방지하기위한 것입니다. targetFramework
on compilation
과 의 차이점은 httpRuntime
각 개발 및 배포 환경에 속합니다.
MSDN 블로그 에 따르면 :
<compilation targetFramework="4.6" />
컴파일을 수행 할 때 사용되는 .NET Framework의 참조 어셈블리 버전을 선택합니다. (참고 : Visual Studio에서는이 요소가 Web.config에 있어야하지만 자동으로 추론됩니다.)
이 요소는 컴파일 중에 현재 프로젝트에서 종속성 및 관련 어셈블리를 만드는 데 사용되는 어셈블리 버전을 결정합니다.
<httpRuntime targetFramework="4.5" />
즉, 메모리로로드하기 전에 배포 컴퓨터에서 기존 프로젝트 어셈블리를 다시 컴파일하지 않고 .NET 4.5 런타임 어셈블리를 사용하도록 설계된 현재 프로젝트를 의미합니다.
따라서 대상 컴퓨터에서 사용되는 런타임 파일의 버전에 따라 컴파일 된 프로젝트와 사용 가능한 어셈블리 간의 호환성을 유지하도록 설계된 targetFramework
in httpRuntime
요소에 정의 된 버전 번호가 있다고 결론을 내릴 수 있습니다 .
따라서 귀하의 경우 이것은 잘못된 동작이 아닙니다. 프로젝트 작성자는 유사한 특성 (예 : 버전 4.5)을 가진 대상 컴퓨터에서 사용할 수있는 최저 런타임 버전에 대한 런타임 호환성을 유지하려고합니다. .NET 어셈블리. 버전 4.5와 4.6의 차이는 상대적으로 작으므로이 컨텍스트에서 런타임 버전을 4.5로 낮게 유지합니다.
관련 참조 :
https://msdn.microsoft.com/en-us/library/dn833123(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/dn833125(v=vs.110).aspx