我的.resx文件出现了一个奇怪的错误:
“无效的Resx文件.ResX输入无效。无法找到ResX阅读器和编写器类型名称的有效”resheader“标签.C:\ Documents and Settings \ Users \ My Documents \ Visual Studio 2010 \ Projects \ dock \的WinForms \码头\ strings.resx“
我所做的是将现有VS 2010解决方案中的一些文件替换为VS 2008解决方案中的一些旧文件,大多数文件工作正常,但我收到此错误,我不知道如何修复它。如果它有所不同,here是该文件的源代码。
如果重要的话,我正在使用.NET WinForms 4.0。
答案 0 :(得分:8)
<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文件是一个很好的方法来解决问题。当设计器生成的代码试图在.resx文件中使用缺失值时,您将轻松获得白色屏幕。
答案 1 :(得分:3)
好的,所以我为解决你的问题所做的就是在/ 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需要的,以便适当地编译你的文件。
希望我帮助过:)
修改强>
我糟透了,我没注意到文件中的现有标签。无论如何,它仍然可以解决您的问题,您可以删除旧标签并保留它们。
答案 2 :(得分:1)
在我的情况下,我从某个地方下载了控件。所有源文件都在一个文件夹中,resx文件位于App_LocalResources子文件夹中。我并没有真正关心它的resx文件中的任何内容,我认为它主要是自动生成的空白标签。所以我刚刚删除了resx文件。删除resx文件后,控件编译成功。