我的本地开发机器的区域设置为英国。当我这样做时:
int total = 34;
string.Format("{0:C}", total ?? 0);
我得到的结果是“34.00英镑”,正如我所料。我有几个单元测试,检查类似的字符串格式。
构建服务器在这些测试中失败,因为结果返回为“$ 34.00”。当我检查它的区域被设置为美国所以我改变了它。我仔细检查了货币标签确实默认为“£”。我重启服务器只是为了确定。
它仍将这些数字格式化为“$ 34.00”。我更改了测试以忽略第一个字符以获得构建。但它引出了一个问题:如果重置Windows区域不会改变这种行为,那会是什么?