Avoid exceptions when parsing _NormalizedWindowsSdkSupportedTargetPlatformVersion #51134
+6
−5
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.
For "funky" reasons related to dotnet/msbuild#3460, the version normalization that we added in #50264 is causing exceptions to be thrown. This isn't a functional issue, the fact that the exceptions are thrown and then caught are part of how MSBuild works.
However, the additional exceptions are showing up on VS perf tests as a regression in the total number of exceptions thrown.
This PR rewrites the logic to avoid calling Version.Parse on the
%(Identity)
, which should avoid the exceptions.Description
Replace Version.Parse in MSBuild evaluation with regular expression to avoid first-chance exceptions in weird MSBuild evaluation modes.
Customer impact
This should not cause any visible customer impact, but it should reduce the count of exceptions thrown.
Regression
This was an exception perf counter regression over .NET 9.
Testing
Manual testing that first-chance exceptions were no longer thrown.
Risk
Low