Translate FileAccessData in TaskHostTaskComplete #9271
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.
Summary
Fix a reported regression that causes MSBuild to crash in net35-targeting projects.
Customer Impact
Projects that use the .NET 3.5 taskhost (like projects that target .NET 3.5 and have
.resx
files) fail witherror MSB4217: Task host node exited prematurely.
Regression?
Yes, from 17.7. Introduced in #9214.
Testing
Repro case from VSUnitTesting repo manually validated, automated tests.
Risk
Low, adds a bool to the translation only in the known-broken case.
Details
TaskHostTaskComplete packets can be sent between nodes that differ in
FEATURE_REPORTFILEACCESS, causing confusion when the sending side (for
example a net35 taskhost) does not send the FileAccessData field, but
the receiving side (net48) expects it.
Unify this by explicitly sending a bool
false
(no data) in the!FEATURE_REPORTFILEACCESS case, so there's no difference on the
receiving end between "no data" and "couldn't be any data".