C#resx文件错误

我的.resx文件出现了一个奇怪的错误:

“无效的Resx文件.ResX输入无效。无法找到ResX读取器和写入器类型名称的有效”resheader“标签.C:\ Documents and Settings \ Users \ My Documents \ Visual Studio 2010 \ Projects \ dock \ WinForms \ Dock \ strings.resx”

我所做的是将现有VS 2010解决方案中的一些文件替换为VS 2008解决方案中的一些旧文件,大多数文件工作正常,但我收到此错误,我不知道如何修复它。 如果它有所不同, 这是该文件的源代码。

我正在使用.NET WinForms 4.0,如果这很重要的话。

  text/microsoft-resx   

以某种方式添加了额外的空白区域。 你需要删除它,看起来像这样:

   text/microsoft-resx  

您还必须将程序集引用中的版本号从2.0.0.0更新到4.0.0.0。 像这样复制.resx文件是一个很好的方法来解决问题。 当设计器生成的代码试图在.resx文件中使用缺失值时,您将轻松获得White Screen of Darn。

好吧所以我为了解决你的问题所做的就是在/ root之前将这些行添加到你的文件中:

   text/microsoft-resx   1.3   System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089   System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089  

我创建了一个新的VS2010解决方案,以通常的方式添加了一个新的.resx文件,并查看了生成的文件的结构。 我发现这些行显然是VS需要的,以便适当地编译你的文件。

希望我帮助:)

编辑:

我糟透了,我没注意到文件中的现有标签。 无论如何,它仍然可以解决您的问题,您可以删除旧标签并保留这些标签。

在我的情况下,我从某个地方下载了控件。 所有源文件都在一个文件夹中,resx文件位于App_LocalResources子文件夹中。 我实际上并不关心它的resx文件中的任何内容,我认为它主要是自动生成的空白标记。 所以我刚刚删除了resx文件。 删除resx文件后,控件编译成功。