이 문서에서는 Microsoft .NET Framework 4.6.1 및 4.6에 사용할 수 있는 핫픽스 롤업을 설명합니다. 이 핫픽스 롤업이 수정하는 문제에 대한 자세한 내용은 이 핫픽스 롤업이 섹션을 수정하는 문제를 참조 하세요.
해결 방법
다운로드 정보
KB3139549에 해당하는 핫픽스는 이전에 KB3139549에 포함된 모든 수정을 포함하는 .NET Framework 최신 업데이트로 대신됩니다. 최신 업데이트를 설치하는 것이 .NET Framework.
Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하세요.
119591 온라인 서비스에서 Microsoft 지원 파일을 얻는 방법 Microsoft는 바이러스를 위해 이 파일을 검색했습니다. Microsoft는 파일을 게시한 날짜에 사용할 수 있는 최신 바이러스 예방 소프트웨어로 이 파일을 검사했습니다. 이 파일은 해당 파일을 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.
추가 정보
필수 구성 요소
이 핫픽스를 적용하려면 4.6.1 또는 .NET Framework 4.6 .NET Framework 있어야 합니다.
다시 시작 요구 사항
영향을 받는 파일이 사용되는 경우 이 핫픽스를 적용한 후 컴퓨터를 다시 시작해야 합니다. 이 핫픽스를 적용하기 전에 .NET Framework 모든 애플리케이션을 종료하는 것이 좋습니다.
핫픽스 대체 정보
이 핫픽스 패키지는 이전에 릴리스된 핫픽스 패키지를 대체하지 않습니다.
이 핫픽스 롤업이 수정하는 문제
문제 1
WPF 애플리케이션이 TreeView 컨텍스트 외부에서 TreeViewItem 요소를 사용하는 경우 애플리케이션은 다음과 같이 스택 추적이 시작되는 InvalidCastException 예외가 발생할 수 있습니다.
시스템. Windows. Controls.VirtualizingStackPanel.FindScrollOffset(Visual v)
참고 이 예외는 TreeViewItem 요소(예: ListBox, DataGrid 또는 ListView 컨트롤)가 TreeViewItem 또는 해당 하위 항목 중 하나의 스크롤 오프셋을 찾는 가상화된 목록 컨트롤에 있는 경우 발생합니다. 예를 들어 DataTemplate의 루트로 TreeViewItem을 선언하고 DataTemplate를 DataGrid 열의 CellTemplate로 사용하는 경우 이 예외가 발생합니다.
문제 2
System.Web.Caching 및 System.Runtime.Caching은 캐시 항목에 사용되는 메모리 크기 대신 전체 AppDomain에서 사용하는 메모리 크기를 보고합니다.
이는 Timer 구현이 변경된 .NET Framework 4.5의 회귀 문제입니다. 잘못된 크기를 보고하는 것 외에도 캐시에서 참조하는 추가 개체는 Gen2 GC 대기 시간에 크게 영향을 줄 수 있습니다. 호스팅 ASP.NET 시나리오에서 캐시는 애플리케이션 도메인을 재활용할 때 모든 애플리케이션 도메인의 모든 캐시 크기(캐시 % 프로세스 메모리 제한 사용 ASP.NET 성능 카운터를 통해 보고)를 잘못 계산합니다. 수정은 캐시에서 앱 도메인 개체의 나머지로 의도하지 않은 참조를 제거한 다음 올바른 크기가 보고됩니다. 또한 서버 GC를 사용하는 다중 코어 컴퓨터에서 System.Runtime.Caching의 대기 시간을 개선하기 위한 변경 내용도 포함되어 있습니다. 마지막으로 이 수정은 앱 도메인 재활용 시나리오의 모든 캐시의 크기를 올바르게 계산합니다.문제 3
터치 이동 사용자 상호 작용을 처리하기 위해 마우스 이동에 Windows Presentation Foundation(WPF) 애플리케이션이 있는 경우 승격된 마우스 이동의 볼륨이 비정상적으로 적을 수 있습니다.
과거에는 터치 볼륨이 디스패치에 압도적이기 때문에 WPF에서 터치의 마우스 승격이 이동했습니다. 이 .NET Framework 4.6.1에서 이 동작에 대한 수정이 만들어졌다. 수정은 처리된 터치 이동 수를 스로틀합니다. 따라서 마우스 승격의 스로틀링으로 인해 마우스 이동이 추가로 감소하게 됩니다. 이 업데이트 롤업에서 마우스 프로모션의 스로틀이 제거되고 이제 터치 이동 이벤트와 승격된 마우스 이동 이벤트 간에 1-1 대응에 가까우면 됩니다.문제 4
4.6을 대상으로 하는 WPF 애플리케이션을 .NET Framework 가정합니다. 예를 들어, DispatcherOperation을 사용하여 WPF 디스패처에서 호출하는 모든 메서드(예: UI 이벤트 처리기 또는 MainWindow 생성자)에서 CurrentThread.CurrentCulture 또는 CurrentThread.CurrentUICulture를 설정하려고 시도했다고 가정합니다. 이 경우 CurrentCulture 및 CurrentUICulture 값은 메서드의 끝에 있는 해당 이전 값으로 다시 설정됩니다. 애플리케이션이 MainWindow 생성자 또는 단추 클릭 처리기에서 CurrentUICulture를 설정하면 이 설정은 시스템 UI 문화권으로 되돌아가게 됩니다.
이 수정은 WPF 애플리케이션의 메서드에서 설정할 수 있는 CurrentThread.CurrentCulture/CurrentUICulture 값이 4.6 이전과 같은 .NET Framework 합니다.문제 5
4.6 .NET Framework 새 플래그인 TaskContinuationOptions.RunContinuationsAsynchronously가 작업 라이브러리에 추가되었습니다. 그러나 Task.WhenAll, Task.WhenAny 또는 Task.Unwrap과 함께 이 플래그를 사용하면 효과가 없습니다. 플래그는 특정 충돌 조건을 방지하기 위해 도입되었습니다. 이 수정은 모든 유형의 작업 연속이 새 플래그를 존중하는지 확인합니다.
문제 6
AppContext는 중단된 변경 내용을 줄이기 위한 인프라의 일부입니다. AppContext를 사용하여 플래그를 설정하고 검색하고 해당 데이터를 기반으로 하는 애플리케이션에서 결정을 내릴 수 있습니다. .NET Framework 4.6에서는 AppContext 메서드의 thead-safety가 잘못 구현되는 AppContext에 버그가 있습니다.
이 수정을 사용하면 스위치 값 설정 및 검색과 관련된 AppContext의 메서드에 대한 올바른 스레드 안전을 사용할 수 있습니다.문제 7
할당 및 생존 패턴으로 에지 사례를 적중하고 관리되는 힙에 새 세그먼트가 필요한 경우 가비지 수집기는 커밋 크기를 계산할 수 있습니다. 이로 인해 가비지 수집기에서 커밋되지 않은 메모리에 쓰기를 시도하기 때문에 압축 단계 동안 액세스 위반이 발생합니다. 이 수정은 크기를 올바르게 계산합니다.
문제 8
특정 메서드에 대한 네이티브 코드를 만들 때 .NET Framework NGEN 프로세스가 중단될 수 있습니다.
문제 9
RyuJit는 레지스터에서 16비트 부호 없는 정수 비교에 대한 잘못된 지침을 생성합니다. 입력 값이 서로 다른 MSB 값이 있으므로 레지스터 피연산자만 사용하는 비교 지침을 생성하면 잘못된 결과가 생성됩니다. 이 수정은 올바른 지침을 생성합니다.