В нашей команде есть проект базы данных в Visual Studio 2008, который находится под управлением Team Foundation Server. Каждые две недели или около того, после регистрации одного сотрудника, файл проекта не загружается на другие компьютеры разработчиков. Сообщение об ошибке:
Не удалось загрузить файл проекта. Данные на корневом уровне недействительны. Линия 1, позиция 1.
Когда я смотрю на файл проекта в Notepad++, он выглядит так:
��<NUL?NULxNULmNULlNUL NULvNULeNULrNULsNULiNULoNULnNUL
...
и так далее (здесь вы видите <?xml version
), в то время как обычный файл проекта выглядит так:
<?xml version="1.0" encoding="utf-16"?>
...
Так что, вероятно, что-то не так с кодировкой файла. Это проблема для нас, потому что оказывается невозможным снова получить правильную кодировку файла. «Решение» состоит в том, чтобы выбросить файл проекта и получить последнюю известную рабочую версию из системы управления версиями.
Согласно файлу кодировка должна быть UTF-16. Согласно Notepad++, поврежденный файл на самом деле имеет кодировку UTF-8.
Мои вопросы:
- Почему Visual Studio портит кодировку файла проекта, по-видимому, в случайное время и на случайных машинах?
- Что мы должны сделать, чтобы предотвратить это?
- Когда это произошло, есть ли возможность восстановить текущий файл в правильной кодировке вместо того, чтобы извлекать более старую версию из системы управления версиями?
И последнее замечание: проблема связана с одним единственным файлом проекта, все остальные файлы проекта не раскрывают эту проблему.
ОБНОВЛЕНИЕ: Благодаря предложению Джона Скита у меня есть ответ на вопрос номер три. Когда я заменю первые девять байтов EF BB BF EF BF BD EF BF BD на два байта FF FE, файл проекта снова загрузится.
Это все еще оставляет вопрос, почему Visual Studio повреждает файл.