in src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs [488:507]
private string BuildPreprocessedContentHash(IReadOnlyDictionary<string, string> values)
{
using (var stream = new MemoryStream())
{
using (var streamWriter = new StreamWriter(stream, Encoding.UTF8, bufferSize: 4096, leaveOpen: true))
{
foreach (var pair in values.OrderBy(v => v.Key))
{
streamWriter.Write(pair.Key);
streamWriter.Write('\0');
streamWriter.Write(pair.Value);
streamWriter.Write('\0');
}
}
stream.Position = 0;
return SHA1.Create().ComputeHash(stream).Aggregate("", (s, b) => s + b.ToString("x2"));
}
}