dotnet/msbuild

WriteLinesToFile Does Not Support BOM Customization

Open

#6,168 opened on Feb 17, 2021

View on GitHub
 (0 comments) (4 reactions) (0 assignees)C# (1,364 forks)batch import
help wantedneeds-designtriaged

Repository metrics

Stars
 (5,062 stars)
PR merge metrics
 (Avg merge 11d 7h) (125 merged PRs in 30d)

Description

Context

The WriteLinesToFile task uses UTF-8 encoding without BOM (byte order mark) by default. This is not specified in the documentation and could be useful to have control over.

The difficulty is allowing control over the optional Encoding parameter and control over the BOM without adding a special case for every single encoding.

Some options I sent in the internal thread that started this issue:

  1. We pick a few encodings that are most common/popular/etc. and special case those and no others.
  2. We can pass an optional parameter to override whether s_defaultEncoding applies a BOM.

Let's discuss what potential solutions there are before implementing an improvement.

Contributor guide