MSBuild, GetType() 호출 지원 중지
MSBuild 17은 속성 함수 내에서 GetType()
인스턴스 메서드를 호출하는 것을 더 이상 지원하지 않습니다. 이 메서드는 평가 중에 예기치 않은 코드 실행을 허용하여 Visual Studio를 중단시킬 수 있었습니다.
도입된 버전
.NET SDK 6.0.100-rc1
이전 동작
MSBuild 속성 함수에서 GetType()
호출이 실행되었고 때로는 Visual Studio에서 예측할 수 없는 동작을 일으켰습니다.
새 동작
.NET 6 SDK부터 MSBuild 속성 함수에서 GetType()
을 호출하면 프로젝트 평가 중에 다음과 같은 컴파일 시간 오류가 표시됩니다.
MSBuild 속성 함수로 “System.String” 형식의 “GetType” 함수를 실행에 사용할 수 없습니다.
범주 변경
이 변경 내용은 원본 호환성에 영향을 미칩니다.
변경 이유
이 기능은 문서화되지 않았거나 일반적으로 사용되지 않았습니다. 특히 Visual Studio에서 프로젝트 로드와 관련된 성능 및 안정성 문제의 원인이 되었습니다.
이 패턴의 알려진 유일한 일반적인 용도는 더 이상 사용되지 않는 CBT 시스템입니다.
권장 작업
GetType()
에 대한 모든 호출을 대체 MSBuild 논리로 바꿉니다.
영향을 받는 API
N/A
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기