dotnet / dotnet/msbuild

Evaluation order of ItemGroup Batching suddenly changed in 16.8

Open
#5,937 10 comments 0 reactions 1 assignee Claimed by @v-zhiyul View on GitHub
bug has-repro triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### Issue Description
After installing .NET 5 on our build servers, we noticed that the evaluation order of ItemGroup batching changed, making it a breaking change.
The .NET 5 installer replaced MSBuild 16.X with 16.8.
We were able to create a minimalistic repro scenario.

This also happens if a developer updates visual studio 2019 with the installer to the newest version.

### Steps to Reproduce
```



A


B



B














```

### Expected Behavior
```
CreateArchiveName: A
CreateArchiveName: B
```
This is also the behavior of MSBuild 16.7 and below.

### Actual Behavior
```
CreateArchiveName: B
CreateArchiveName: A
```

### Analysis
In 16.7 and below the batching order seems to be defined by the order of the attributes of `LogIt` in the XML. (the first one defines the order)
In 16.8 the batching order seems to be defined by the names of the attributes of `LogIt` in the XML alphabetically. (the last one defines the order)

### Versions & Configurations
Microsoft (R)-Build-Engine, Version 16.8.2+25e4d540b

### Attach a binlog

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.