Ошибка файла C# resx
Я получаю странную ошибку с моими файлами.resx:
"Недопустимый файл Resx. Ввод ResX недопустим. Не удается найти допустимые теги"resheader"для имен типов чтения и записи ResX. C:\Documents and Settings\Users\ Мои документы \Visual Studio 2010\Projects\dock\WinForms\Dock\strings.resx"
Что я сделал, так это заменил некоторые файлы в существующем решении VS 2010 на более старые из решения VS 2008, большинство файлов работают нормально, но я получаю эту ошибку и не знаю, как ее исправить. Если это имеет значение, вот исходный код этого файла.
Я использую NET WinForms 4.0, если это имеет значение.
3 ответа
<resheader name="resmimetype">
<value>
text/microsoft-resx
</value>
</resheader>
Дополнительные пробелы были добавлены как-то. Вам нужно будет удалить его, чтобы он выглядел так:
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
Также необходимо обновить номера версий в ссылках на сборку с 2.0.0.0 до 4.0.0.0. Подобное копирование файлов.resx в противном случае является хорошим способом попасть в неприятности. Вы легко получите White Screen of Darn, когда сгенерированный дизайнером код попытается использовать отсутствующее значение в файле.resx.
Итак, для решения вашей проблемы я добавил следующие строки в ваш файл непосредственно перед /root:
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
Я создал новое решение VS2010, добавил новый файл.resx обычным способом и посмотрел на структуру сгенерированного файла. Я нашел эти строки, которые, по-видимому, нужны VS для того, чтобы правильно скомпилировать ваш файл.
Надеюсь, я помог:)
РЕДАКТИРОВАТЬ:
К сожалению, я не заметил существующие теги в вашем файле. В любом случае, это все еще решает вашу проблему, и вы можете просто удалить старые теги и сохранить их.
В моем случае я откуда-то скачал элемент управления. Все исходные файлы были в папке, а файл resx находился в подпапке App_LocalResources. На самом деле мне ничего не было нужно в части файла resx, я думаю, что это в основном автоматически генерируемые пустые теги. Поэтому я просто удалил файл resx. После удаления файла resx элемент управления успешно скомпилирован.