C#resx文件错误

时间:2011-12-05 19:03:32

标签: c# file error-handling resx

我的.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。

3 个答案:

答案 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文件后,控件编译成功。