참고
- 출시된 날짜:
2020년 7월 31일 - 버전:
.NET Framework 3.5 및 4.8
2020년 7월 31일 Windows 10 버전 2004 업데이트에는 .NET 3.5 및 4.8의 누적 안정성 개선 사항이 포함되어 있습니다. 정기적인 유지 관리 작업의 일부로 이 업데이트를 적용하는 것이 좋습니다. 이 업데이트를 설치하기 전에 필수 구성 요소 및 다시 시작 요구 사항 섹션을 참조하세요.
품질 및 안정성 개선 사항
| CLR1 | - .NET Framework 4.8의 변경으로 인해 단일 스레드 아파트 개체가 다중 스레드 아파트로 처리되어 차단 실패로 이어질 수 있는 특정 EnterpriseServices 시나리오가 회귀되었습니다. 이제 이 변경 내용이 단일 스레드 아파트 개체를 올바르게 식별하여 이 오류를 방지합니다. - Ngen 작업자 프로세스가 충돌하여 전체 네이티브 이미지로 대체되는 IBC 프로필 데이터가 있는 어셈블리의 문제를 해결합니다. - 스레드 배달을 중단하는 동안 발생할 수 있는 드문 크래시를 해결합니다. |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer로 인해 트랜잭션이 메모리 내 SQL 테이블로 실패할 수 있습니다. 클라이언트에 "실행 시간 제한 만료됨" 메시지와 함께 예외가 표시될 수 있습니다. 작업이 완료되기 전에 경과된 시간 제한 기간 또는 서버가 응답하지 않습니다." SqlBulkCopy.WriteToServer는 Sql Server로 데이터를 보낸 후 주의 토큰(취소 메시지)을 보내고 서버가 메모리 내 테이블에 대한 트랜잭션을 중단했습니다. |
| ASP.NET | - ASP.Net 원격 분석 데이터에 FIPS 규격 해시를 사용합니다. - 양식 인증 및 세션 상태 구성 섹션의 'cookieSameSite' 특성에 대해 "지정되지 않음"이 구성에서 허용되는 값이 아닌 문제를 해결합니다. |
| WPF2 | - WPF TextBox 또는 RichTextBox에서 맞춤법 검사를 사용할 때 "etc.", "예" 등의 단어를 사용할 때 발생하는 문제를 해결합니다. 은 맞춤법 오류로 잘못 식별됩니다. - .NET 4.8에서 실행되는 일부 Per-Monitor 인식 WPF 애플리케이션에서 예외System.ComponentModel.Win32Exception과 충돌하는 경우가 가끔 발생하는 문제를 해결합니다. - 렌더링 및 적중 테스트 중에 TextBlock이 리플로(다른 줄 바꿈 결정을 내리는 경우)와 측정 중에 다시 흐르는 문제를 해결합니다. 증상에는 누락된 텍스트 및 프로그래밍 방식 텍스트 처리 중 FailFast 크래시가 포함됩니다. - HostVisual이 잘못된 스레드에서 대상의 연결을 끊어 렌더링 스레드 오류와 관련된 문제를 해결합니다. - 지정된 노드의 자식이 크기가 매우 다른 하위 트리를 제어한다는 점에서 트리가 균일하지 않은 TreeView를 스크롤하는 동안 중단 문제를 해결합니다. - 사용자 코드로 다시 닫힌 도구 설명을 닫을 때 발생할 수 있는 충돌 문제를 해결합니다. - HwndHost가 시각적 트리를 벗어나면 스택 추적이 생성됩니다. 이것은 비용이 많이 들고 일반적으로 불필요합니다. 이제 비정상적인 조건이 발생할 때만 스택 추적을 만들도록 논리가 변경되었습니다. - System.Speech.SpeechSynthesizer의 메모리 누수 해결 - 시스템 클립보드가 다른 프로세스에 의해 잠겨 있는 경우 DataGrid의 복사 명령은 예외를 throw합니다. 일반적으로 스택에 예외를 catch할 앱 코드가 없으므로 충돌합니다. 이 상황에서 TextBox(및 메모장, Word, 브라우저와 같은 다른 앱)의 동작은 자동으로 실패하는 것입니다. 클립보드에는 아무것도 복사되지 않지만 예외는 없습니다. 이제 WPF 앱은 appSettings add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"//<>appSettings를 app.config 파일에서 설정<하여 이 동작에 옵트인할 수 있습니다>.>< - FixedPage 문서에 대한 내부 모델을 생성하는 문제를 해결합니다. 선택 및 복사/붙여넣기와 같은 편집 작업을 위해 일부 텍스트가 잘못된 순서로 표시되었습니다. |
| WCF3 | - NetTcpBinding 또는 NetNamedPipeBinding을 사용할 때 NetworkCredential의 사용자 이름 속성과 비슷한 username@dns.domain 형식으로 UPN Windows 사용자 이름을 사용하는 경우 WCF는 username 및 dns.domain을 UserName 및 Domain 속성에 배치하는 username 및 dns.domain을 잘못 분할합니다. 이는 일부 시나리오에서 유효하지 않으며 인증에 실패합니다. 이 수정은 UPN 사용자 이름을 사용할 때 자격 증명 수정을 제거합니다. AppSetting "wcf:enableLegacyUpnUsernameFix"를 true로 설정하여 수정을 다시 사용하도록 설정할 수 있습니다. |
| Net 라이브러리 | - HttpListener의 메모리 누수 해결 |
| Winforms | - DataGridView IsReadOnlyaccessibility 상태 문제를 해결합니다. 내레이터 및 기타 액세스 가능한 도구는 그에 따라 읽기 전용 셀 상태 알릴 수 있습니다. - DataGridView ComboBox 셀 형식을 사용하고 수준 3 접근성을 옵트인한 애플리케이션이 셀을 편집하는 동안 간헐적으로 충돌이 발생할 수 있는 경우 .NET Framework 4.8의 회귀를 해결합니다. - ClickOnce RFC3161 타임스탬프 확인 코드의 문제를 해결합니다. |
| Winforms 접근성 향상 | 이 릴리스에서는 애플리케이션이 옵트인할 수 있는 새로운 접근성 개선 사항을 추가합니다. 기본적으로 이러한 변경 내용은 사용하지 않도록 설정됩니다. .NET 4.8 이하에서 도입된 접근성 기능에 옵트 인하는 애플리케이션은 애플리케이션의 구성 파일에 다음 호환성 스위치를 추가할 수 있습니다."Switch.UseLegacyAccessibilityFeatures.4=false"특히 애플리케이션이 .NET 4.8을 대상으로 하는 경우 다음 AppContextSwitchOverrides 섹션을 추가합니다. <?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" /> </runtime> </configuration>애플리케이션이 이전 버전의 프레임워크를 대상으로 하고 이전에 릴리스된 접근성 기능 집합에 옵트인하는 경우 기존 AppContextSwitchOverrides 섹션에 단일 "Switch.UseLegacyAccessibilityFeatures.4=false" 스위치를 추가합니다.<?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/> </runtime> </configuration>이 릴리스에 포함된 Winforms 접근성 개선 사항은 다음과 같습니다. - 화면 읽기 프로그램에서 PropertyGrid 컨트롤 항목 및 범주 확장/축소 상태를 발표하는 문제를 해결합니다. - Property Grid 컨트롤 및 내부 요소의 액세스 가능한 패턴을 업데이트했습니다. - 화면 읽기 프로그램에서 이를 올바르게 알리도록 Property Grid 컨트롤 내부 요소의 액세스 가능한 이름을 업데이트했습니다. - PropertyGridView 컨트롤에 대한 경계 사각형 액세스 가능한 속성을 해결합니다. - 화면 읽기 프로그램에서 DataGridView ComboBox 셀 확장/축소 상태를 올바르게 알릴 수 있습니다. |
1 CLR(공용 언어 런타임)
2 WPF(Windows Presentation Foundation)
3 Windows Communication Foundation
이 업데이트의 알려진 문제
공통 스레드에 속하는 두 개 이상의 HostVisual 요소를 사용하는 WPF(Windows Presentation Framework) 애플리케이션입니다. 여기서 두 HostVisual 요소는 거의 동시에 시각적 대상에서 연결을 끊도록 요청되며 메일은 다음 오류와 함께 실패합니다.
예외 유형: System.COMException
메시지: UCEERR_RENDERTHREADFAILURE(HRESULT 0x88980406)
호출 스택: 위쪽 프레임은 System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
대안
여기에 설명된 방법 중 하나를 사용하여 AppContext 스위치 "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread"를 true로 설정하여 문제가 있는 수정을 사용하지 않도록 설정할 수 있습니다. 이렇게 하면 앱이 원래 버그에 노출되므로 예정된 업데이트를 통해 수정 사항이 게시되면 스위치를 제거해야 합니다.
해결 방법 1
• 단일 애플리케이션에서 문제가 있는 수정을 사용하지 않도록 설정하려면 app.config 파일에 다음 항목을 추가합니다.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</런타임>
애플리케이션 구성에 AppContextSwitchOverrides>에 대한 <항목이 이미 있는 경우 해당 항목 내에 세미콜론으로 다른 스위치와 구분된 새 설정을 추가해야 합니다.
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
해결 방법 2
• 다음 레지스트리 하위 키를 적용하여 컴퓨터의 모든 WPF 애플리케이션에 문제가 있는 수정을 사용하지 않도록 설정합니다.
경고
레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 이러한 문제를 해결할 수 있다고 보장할 수 없습니다. 레지스트리를 수정하는 데 따르는 위험은 사용자가 부담해야 합니다.
위치: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
이름: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
형식: 문자열
값: true
64비트 운영 체제에서는 위치에 동일한 이름, 형식 및 값을 가진 레지스트리 하위 키도 적용해야 합니다HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
해결 방법
해결 방법을 강구하기 위해 노력 중이며, 다음 릴리스에서 업데이트를 제공할 예정입니다.
업데이트를 구하고 설치하는 방법
이 업데이트 설치
| 릴리스 채널 | 사용 가능 | 다음 단계 |
|---|---|---|
| Windows 업데이트 및 Microsoft 업데이트 | 예 | 이 업데이트를 다운로드하여 설치하려면 설정>업데이트 & 보안>Windows 업데이트 이동한 다음 업데이트 확인을 선택합니다. |
| Microsoft 업데이트 카탈로그 | 예 | 이 업데이트의 독립 실행형 패키지를 얻으려면 Microsoft 업데이트 카탈로그 웹 사이트를 방문하세요. |
| WSUS(Windows Server Update Services) | 아니요 | 이 업데이트를 수동으로 WSUS에 가져올 수 있습니다. 지침은 Microsoft 업데이트 카탈로그 를 참조하세요. |
파일 정보
이 업데이트에서 제공되는 파일 목록을 보려면 누적 업데이트에 대한 파일 정보를 다운로드하세요.
필수 구성 요소
이 업데이트를 적용하려면 .NET Framework 3.5 또는 4.8이 설치되어 있어야 합니다.
다시 시작 요구 사항
영향받는 파일을 사용 중인 경우에는 이 업데이트를 적용한 후에 컴퓨터를 다시 시작해야 합니다. 이 업데이트를 적용하기 전에 .NET Framework 기반 응용 프로그램을 모두 종료하는 것이 좋습니다.
이 업데이트에 대한 도움말 및 지원을 받는 방법
- 업데이트 설치 도움말: Windows 업데이트 FAQ
- 온라인 및 가정에서 자신을 보호: Windows 보안 지원
- 국가에 따른 현지 지원: 국제 지원