Improve custom error messages for MSB3644 #2097
Merged
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.
#2069 introduced custom error message for MSB3644 (avoid the default
The reference assemblies for {0} were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack)...
)This works well, however, .NET 5.0 and 6.0 are special cases, because the old MSBuilds assume these are ".NETFramework,Version=v5.0" and ".NETFramework,Version=v6.0" and our solution suggestion (to use global Mono instead of embedded one) is invalid. In fact, in those cases we need to suggest the opposite.
This PR extends #2069 to provide special casing for .NET 5.0 and 6.0, which hopefully will make troubleshooting easier for both users and us.