Как я могу разрешить "Неверный файл Resx... Не удается найти допустимые теги"resheader"для имен типов чтения и записи ResX". ошибка компилятора?

Я получаю дюжину "Неверный файл Resx. Ввод ResX недопустим. Не удается найти допустимые теги"reheader"для имен типов чтения и записи ResX". msgstr при попытке скомпилировать.

У меня была эта проблема раньше, как можно увидеть здесь.

На этот раз, однако, это проявляется немного по-другому.

Во-первых, вот что я сделал: я выбрал пункт контекстного меню "Отменить ожидающие изменения" для нескольких файлов в проекте. Для каждого из них связанный с ними файл *.resx явно поврежден.

Если дважды щелкнуть первую ошибку в списке ошибок, я попаду сюда в файл.resx:

  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>

Дважды нажав на следующую ошибку, я попаду сюда в файл.resx:

<resheader name="resmimetype">text/microsoft-resx</resheader>

Это закомментированный пояснительный раздел; в немного контекста:

<!-- 
    Microsoft ResX Schema 

    Version 1.3

    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">1.3</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1">this is my long string</data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        [base64 mime encoded serialized .NET Framework object]
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        [base64 mime encoded string representing a byte array form of the .NET Framework object]
    </data>
  . . .

Все 10 других 2-х нажатий выводят меня прямо на первую строку в файле.resx, а именно:

<?xml version="1.0" encoding="utf-8"?>

Ответ Ханса Пассанта на тот же вопрос от другого кота здесь указывает на то, что необходимо удалить лишние пробелы; Я не вижу такого лишнего пробела в моих файлах.resx, хотя...

Что мне нужно сделать, чтобы исправить эти искаженные файлы.resx?

ОБНОВИТЬ

Может случиться так, что те первые два местоположения, где ошибочная msg, кажется, указывают, являются поддельными / вводящими в заблуждение; они могут быть просто местами в файлах, в которые я ранее поместил курсор (странно, что сообщение об ошибке будет отправлено туда, а не в предполагаемое место проблемы, хотя...)

ОБНОВЛЕНИЕ 2

Согласно сообщению об ошибке, в файлах с ошибками *.resx отсутствуют допустимые теги читателя / записывающего устройства. Тем не менее, эти теги / декларации существуют в файлах *.resx. Это выглядит так:

  <resheader name="reader">
    <value>System.Windows.Forms.Design.CFResXResourceReader, System.CF.Design, 
    Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </resheader>
  <resheader name="writer">
    <value>System.Windows.Forms.Design.CFResXResourceWriter, System.CF.Design, 
    Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </resheader>

.... но, что интересно, (если вы в любом случае uebergeek) они отличаются от деклараций RESX и писателей в других (компилируемых) формах, которые выглядят так:

<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, 
    Culture=neutral,PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, 
    Culture=neutral,PublicKeyToken=b77a5c561934e089</value>
</resheader>

Если я заменю декларации устройства чтения / записи RESX в некомпилируемых формах другим форматом (IOW, я заменяю "System.Windows.Forms.Design.CFResXResourceReader, System.CF.Design, Version = 7.0.5000.0" на "System. Resources.ResXResourceReader, System.Windows.Forms, Version = 2.0.0.0"(и используют различные маркеры открытого ключа), он компилируется!

НО (и это большой, но [t] (подумайте Берта)), машина, на которой компилируется этот проект, является ПК (конечно), но целевой машиной, на которой будет работать.exe, является Compact Framework (портативное устройство. Итак, будет ли проблема замены "CF" более общим словарным выражением RESX проблематичным, когда.exe перемещается с компьютера на точку, чтобы указать на переносное устройство Windows CE?

0 ответов

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