Some developers configure their git to check out files as LF instead of CRLF on Windows. That causes the diff detection for the AsnXml target to think the generator produced a meaningful change, when it really didn't. There unfortunately is not a good way to fix this in .gitattributes if the developer really insists that the line endings are LF on Windows, e.g:
We can't tell .gitattributes "No really, you definitely want to check these files out as CRLF on Windows and LF everywhere else".
Instead, we can just ignore the line endings for comparison sake. I could not figure out a way to do this in MSBuild, so I added a small C# task. I feel like this should be doable with <ReadLinesFromFile /> and comparing the Lines output, but I couldn't quite get that to work.
Some developers configure their git to check out files as LF instead of CRLF on Windows. That causes the diff detection for the AsnXml target to think the generator produced a meaningful change, when it really didn't. There unfortunately is not a good way to fix this in
.gitattributes
if the developer really insists that the line endings are LF on Windows, e.g:We can't tell .gitattributes "No really, you definitely want to check these files out as CRLF on Windows and LF everywhere else".
Instead, we can just ignore the line endings for comparison sake. I could not figure out a way to do this in MSBuild, so I added a small C# task. I feel like this should be doable with
<ReadLinesFromFile />
and comparing theLines
output, but I couldn't quite get that to work.Fixes #101651