Specflow изменяет кодировку UTF автоматически сгенерированного кода за файлом C# при изменении текста файла объекта - PullRequest
0 голосов
/ 30 января 2020

Я столкнулся с проблемой кодировки, когда я обновил прямую ссылку на DLL на Specflow версии 2.2.0 - на ссылку NuGet версии 3.1.7.4.

Теперь, когда я изменяю текст в файле функций, Specflow изменяет кодировку связанного с ним кода в файле C# с UTF-8-BOM на UTF-8. Поскольку в нашей сборке Cruise Control есть скрипт, проверяющий, что используется правильная кодировка (UTF-8-BOM), мы получаем предупреждения при запуске этого скрипта.

Исправление легко, вы просто открываете файл .cs C# в Notepad ++, щелкните меню кодирования и измените его обратно с «Кодировать в UTF-8» на «Кодировать в UTF-8-BOM» и сохранить файл.

Это, очевидно, легко забываемый и раздражающий, чтобы помнить!

Кто-нибудь думал о том, как остановить Specflow, изменяющий кодировку при каждом изменении файла объекта или даже почему он это делает?

1 Ответ

0 голосов
/ 04 февраля 2020

Как предложил György Kőszeg, я сообщил о проблеме на github, и SabotageAndi ответил сегодня следующим образом, поэтому эту проблему следует исправить в будущем выпуске.

Я провел некоторое исследование и выяснил, что UTF-8 + BOM действительно является кодировкой по умолчанию для C# - файлов. Это было для меня неожиданностью, я всегда думал, что это был только UTF-8.

Так что я рад рассмотреть и принять PR, который исправляет это. Не должно быть больших изменений. Я думаю, что только вызовы File.WriteAllText в https://github.com/SpecFlowOSS/SpecFlow/blob/master/SpecFlow.Tools.MsBuild.Generation/CodeBehindWriter.cs должны быть изменены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...