Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
.NET SDK 8.0.200 introduced a regression in the new -getItem, -getProperty, and -getTargetResult MSBuild CLI options. When the SDK is used to perform an MSBuild operation for a specific TargetFramework, the output is duplicated, like so:
> 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/
Note
We intend to fix this behavior in an upcoming release of the .NET 8.0.200 SDK.
Version introduced
.NET 8.0.200
Previous behavior
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
New behavior
Building, loading, or running an affected project fails.
Type of breaking change
This is a behavioral change that can impact user scripts, especially in CI/CD scenarios.
Reason for change
These options are intended to return values computed from a single user-requested build. However, SDK-initiated MSBuild operations like build and publish can sometimes trigger a second call to MSBuild—particularly when the -f option is used to specify that a build should occur for a specific TargetFramework. In that scenario, -getItem, -getProperty, and -getTargetResult options were passed to both MSBuild invocations, instead of only the one that a user expected to be triggered.
Recommended action
Choose one of the following actions:
- Use an older version of the .NET SDK (before the regression was introduced).
- Use a version of the .NET 8 SDK that contains the fix, which should be any version after 8.0.202.
- Remove any usage of
-ffrom calls that also use-getItem,-getProperty, or-getTargetResults.