다음을 통해 공유


MSBuild 사용자 지정 파생 빌드 이벤트가 더 이상 사용되지 않음

빌드 확장성(주로 사용자 지정 작업)에 의한 BuildEventArgs 하위 클래스의 사용자 지정 파생 빌드 이벤트는 더 이상 사용되지 않습니다.

이전 동작

이전에는 이러한 형식이 BuildEventArgs 하위 클래스에서 파생했고 사용자 지정 작업 및 기타 빌드 확장성 지점에서 이 형식을 자유롭게 사용할 수 있었습니다.

새 동작

.NET 8에서부터는 코드가 BuildEventArgs에서 파생된 형식을 사용하고 사용자가 .NET 8 버전의 MSBuild를 사용하여(즉 명령줄로부터) 빌드하는 경우, 빌드 오류가 발생합니다.

사용자 지정 이벤트 형식 'MyCustomBuildEventArgs'의 serialization 동안 안전하지 않은 BinaryFormatter 사용. 이 기능은 곧 더 이상 사용되지 않습니다. 대신 Extended*EventArgs를 사용하세요. 추가 정보: https://aka.ms/msbuild/eventargs

Visual Studio에서 빌드하는 경우 MSBUILDCUSTOMBUILDEVENTWARNING 환경 변수를 1로 설정하여 옵트인하지 않는 한 동작 변경이 없습니다(Visual Studio 버전 17.8 이상에서 사용 가능).

도입된 버전

.NET 8 RC 1

변경 형식

이 변경 사항은 동작 변경입니다.

변경 이유

BinaryFormatter serialization은 .NET 8 이상 버전에서 사용되지 않습니다. 모든 BinaryFormatter 사용은 런타임에 예외를 throw 합니다. MSBuild 사용자 지정 파생 빌드 이벤트가 BinaryFormatter을(를) 사용하므로 빌드에서 이러한 이벤트를 사용하면 빌드가 중단됩니다. 새 빌드 오류는 더 정상적인 오류를 제공합니다.

확장성을 위해 사용자 지정 파생 빌드 이벤트 대신 새로 도입된 기본 제공 이벤트 중 하나를 사용하세요.

또는 환경 변수 MSBUILDCUSTOMBUILDEVENTWARNING을(를) 명시적으로 1 이외의 다른 값으로 설정하여 검사를 일시적으로 사용하지 않을 수 있습니다.

영향을 받는 API