Explicitly enable BF for WinForms and WPF in Microsoft.NET.Sdk.targets #32952
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #32941.
The *.runtimeconfig.json files are being picked up from the shared framework builds and included as part of the .NET 8 installers. Since the shared framework is itself not a WinForms or WPF application, it results in "explicitly disable BF" being hardcoded into the config file, which is then distributed to customers' machines via the installer. This is resulting in BF disablement for all project types starting with Preview 5, even though that was not our intent.
The proposed fix here special-cases WinForms and WPF within the .targets file where we made the initial change, and it forces those project types to re-enable BF if the developer has not set a different value in the .csproj. One downside of this change is that if a WinForms or WPF application is published against .NET 8, the "enable BF" policy will be carried within that app's runtimeconfig.json file, which means that if the app is rolled forward it won't honor the .NET 9 "disabled absolutely everywhere" default setting once that change is checked in. But after talking with some folks here, that seems like an acceptable risk to unblock this scenario.