Вот код, который работал. Я должен был вручную установить правильную культуру.
Спасибо Ричарду Шнайдеру и Эвку за ваши комментарии.
class Program {
static readonly CultureInfo USEnglish = new CultureInfo("en-US");
static void Main(string[] args) {
var value = "$291.00";
var valueAsDecimal = decimal.Parse(value, System.Globalization.NumberStyles.Any, USEnglish);
Console.WriteLine(valueAsDecimal);
Console.ReadLine();
}
}
Похоже, что культура по умолчанию, запущенная в док-контейнере FROM microsoft/dotnet:2.0-runtime AS base
, является инвариантной культурой: