无效的Resx文件.ResX输入无效
本文关键字:无效 输入 ResX Resx 文件 | 更新日期: 2023-09-27 18:08:38
我得到了一个运行良好的WPF项目,但过了一段时间我得到了非常尴尬的编译错误
Resx文件无效。ResX输入无效。无法为ResX阅读器和写入器类型名称找到有效的" reheader "标记。
我没有改变任何东西到我的resx文件。我甚至没有定义资源。
我的资源。resx文件:
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element Header="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element Header="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element Header="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute Header="Header" type="xsd:string" />
<xsd:attribute Header="type" type="xsd:string" />
<xsd:attribute Header="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element Header="assembly">
<xsd:complexType>
<xsd:attribute Header="alias" type="xsd:string" />
<xsd:attribute Header="Header" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element Header="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element Header="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element Header="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute Header="Header" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute Header="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute Header="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element Header="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element Header="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute Header="Header" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader Header="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader Header="version">
<value>2.0</value>
</resheader>
<resheader Header="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader Header="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
我已经在SO中看到了一些答案,但我的读者和作者的值标签似乎是有效的(不通过新行等分隔)
将所有头属性替换为名称例如:
<xsd:element name="root" msdata:IsDataSet="true"></xsd:element>
如果你在某个地方使用了"Replace all",你可能不小心改变了它。
如果你不使用这个文件,你也可以直接删除它。
此外,您还可以使用诸如此类的在线工具来检查xml和模式是否有效。