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