Не удается сгенерировать файл NodaZoneData с помощью NodaTime.TzdbCompiler

Когда я пытаюсь сгенерировать файл NodaZoneData, используя NodaTime.TzdbCompiler и последнюю загрузку IANA tzdb, я получаю следующий вывод:

Starting compilation of directory data\2014f
Parsing file africa . . .
Parsing file antarctica . . .
Parsing file asia . . .
Parsing file australasia . . .
Parsing file backward . . .
Parsing file etcetera . . .
Parsing file europe . . .
Parsing file northamerica . . .
Parsing file pacificnew . . .
Parsing file southamerica . . .
Parsing file systemv . . .
Parsing file zone1970.tab . . .

Unhandled Exception: System.IO.InvalidDataException:
Unexpected zone database keyword: AD at ModaTime.TzdbCompiler.Tzdb.TzdbZoneInfoParser.ParseLine(String line, TzdbDatabase database)

Похоже, что компилятор останавливается на файле zone1970.tab. Если я удалю этот файл. Я могу скомпилировать файл NodaZoneData без ошибок.

1 ответ

Решение

Да, это связано с zone1970.tab только введен в 2014f, а выпущен TzdbCompiler не зная об этом. Удалите файл, и все будет в порядке - или вы можете просто использовать файл nzd, который мы уже разместили на веб-сайте.

Если вы достаточно смелы, чтобы получить кодовую базу 2.0, TzdbCompiler было установлено, чтобы ожидать zone1970.tab - и у нас есть проблема с отслеживанием факта, что мы должны поддерживать его должным образом в какой-то момент.

Если вместо этого вы хотите исправить локальную копию, версия 707440a3 - это то исправление, которое исправляет ее в 2.0. В основном вам просто нужно добавить этот файл в список тех, которые TzdbCompiler игнорирует.

Другие вопросы по тегам