programing tip

ASP .NET MVC의 web.config에서 TargetFramework 설정은 무엇을 의미합니까?

itbloger 2020. 11. 22. 19:07
반응형

ASP .NET MVC의 web.config에서 TargetFramework 설정은 무엇을 의미합니까?


ASP.NET MVC 5 웹 응용 프로그램 중 하나에는 다음과 같은 web.config 설정이 있습니다.

<system.web>
  <compilation debug="true" targetFramework="4.6" />
  <httpRuntime targetFramework="4.5" />
  <!--... many other things -->
</system.web>

왜 두 개의 targetFramework 설정이 있는지 명확하지 않으며 4.6을 대상으로 컴파일 한 다음 4.5에서 실행하려고하는 것은 잘못된 것 같습니다.

분명히 나는 ​​뭔가를 놓치고 있지만 무엇입니까?


targetFramework존재 하는 이유는 web.config각 버전의 .NET Framework에 대한 주요 변경 사항간에 호환성 문제를 방지하기위한 것입니다. targetFrameworkon compilation의 차이점은 httpRuntime각 개발 및 배포 환경에 속합니다.

MSDN 블로그 에 따르면 :

<compilation targetFramework="4.6" />

컴파일을 수행 할 때 사용되는 .NET Framework의 참조 어셈블리 버전을 선택합니다. (참고 : Visual Studio에서는이 요소가 Web.config에 있어야하지만 자동으로 추론됩니다.)

이 요소는 컴파일 중에 현재 프로젝트에서 종속성 및 관련 어셈블리를 만드는 데 사용되는 어셈블리 버전을 결정합니다.

<httpRuntime targetFramework="4.5" /> 즉, 메모리로로드하기 전에 배포 컴퓨터에서 기존 프로젝트 어셈블리를 다시 컴파일하지 않고 .NET 4.5 런타임 어셈블리를 사용하도록 설계된 현재 프로젝트를 의미합니다.

따라서 대상 컴퓨터에서 사용되는 런타임 파일의 버전에 따라 런타임 사용시 컴파일 된 프로젝트와 사용 가능한 어셈블리 간의 호환성을 유지하도록 설계된 targetFrameworkin 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


내 이해 에 따라 다음으로 번역 되기 때문에 <compilation debug="true" targetFramework="4.6" />억압되고 있습니다.<httpRuntime targetFramework="4.5" />httpRuntime

<compilation targetFramework="4.5" />
<machineKey compatibilityMode="Framework45" />
<pages controlRenderingCompatibilityVersion="4.5" />

따라서 위의 설정은 아마도 내가 사실이라고 생각하지 않는 VS에서 직접 수행 한 경우 일부 오해 또는 버그 때문일 수 있습니다.

이 설정 및 기타 모든 관련 항목이 Microsoft 직원이 작성한 All about <httpRuntime targetFramework> 라는 제목의이 블로그 가 도움이 될 수 있음을 의미하는 방법을 이해하려면 . 그러나 그것의 요점은;

.NET Framework (ASP.NET 포함)는 기존 프레임 워크가 컴퓨터에서 업데이트 될 때 거의 100 % 호환성을 유지하기 위해 노력합니다. 응용 프로그램이 .NET Framework 4에 대해 개발되고 배포 된 경우 4.5에서 계속 작동하도록 최대한 보장하려고합니다. 이는 일반적으로 버전간에 제품에 기발하거나 버그가 있거나 바람직하지 않은 동작을 유지하는 것을 의미합니다.이를 수정하면 해당 동작에 의존하는 애플리케이션에 부정적인 영향을 미칠 수 있습니다.

참고 URL : https://stackoverflow.com/questions/40170567/what-do-the-targetframework-settings-mean-in-web-config-in-asp-net-mvc

반응형