.NET SDK 8.0.200에는 새로운 -getItem
, -getProperty
및 -getTargetResult
MSBuild CLI 옵션에 회귀 기능이 도입되었습니다. SDK를 사용하여 특정 TargetFramework에 대한 MSBuild 작업을 수행하면 다음과 같이 출력이 복제됩니다.
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
bin\Debug/net8.0-android/android-arm64/
참고
예정된 .NET 8.0.200 SDK 릴리스에서 이 동작을 수정할 예정입니다.
.NET 8.0.200
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
영향을 받는 프로젝트를 빌드, 로드 또는 실행하지 못합니다.
이는 특히 CI/CD 시나리오에서 사용자 스크립트에 영향을 줄 수 있는 동작 변경입니다.
이러한 옵션은 단일 사용자 요청 빌드에서 계산된 값을 반환하기 위한 것입니다. 그러나 build
및 publish
와 같은 SDK 시작 MSBuild 작업은 경우에 따라 MSBuild에 대한 두 번째 호출을 트리거할 수 있습니다. 특히 -f
옵션을 사용하여 특정 TargetFramework에 대해 빌드가 발생하도록 지정하는 경우에는 더욱 그렇습니다. 해당 시나리오에서는 -getItem
, -getProperty
및 -getTargetResult
옵션이 사용자가 트리거될 것으로 예상한 MSBuild 호출 대신 두 MSBuild 호출 모두에 전달되었습니다.
다음 작업 중 하나를 선택합니다.
- 회귀가 도입되기 전의 이전 버전의 .NET SDK를 사용합니다.
- 수정 사항이 포함된 .NET 8 SDK 버전을 사용합니다. 이 버전은 8.0.202 이후 버전이어야 합니다.
-getItem
, -getProperty
또는 -getTargetResults
도 사용하는 호출에서 -f
사용을 제거합니다.