SetPlatform Negotiation: Allow MSBuild GetTargetFrameworks
call when SetTargetFramework
already set
#6724
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.
Context
Fix potential issue where an already-set 'SetTargetFramework' metadata on a
ProjectReference
item would skip logic required for SetPlatform negotiation.When
SkipGetTargetFrameworkProperties
is true, it skips the MSBuild call toGetTargetFrameworks
. I modified a condition to ensure it wouldn't be set to true when opted into the feature, but just below that was this:So if we skipped setting
SkipGetTargetFrameworkProperties
to true, it would still be set to true ifSetTargetFramework
was set. This would skip the call toGetTargetFrameworks
, which would prevent the proper metadata being added to the item before GetCompatiblePlatform is called, likely resulting in a warning and the project being built with no metadataChanges Made
Added a condition not to set
SkipGetTargetFrameworkProperties
when opted into platform negotiation.Testing
Not tested yet.
Notes
One of those "wake up in the middle of the night and this hits you" moments.