2011-12-05 54 views
4

我得到我的.resx文件一個奇怪的錯誤:C#的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的解決方案,大部分文件工作正常,但我得到這個錯誤,我不知道如何解決它。如果它有所作爲,here是該文件的源代碼。

我正在使用NET WinForms 4.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文件中使用缺少的值時,您會很容易地獲得Darn的白色屏幕。

+0

我不知道空白可能會導致這種情況。無論如何,你的方法似乎已經奏效,所以謝謝。 – david

3

好吧所以我爲了解決你的問題所做的只是前將這些行添加到您的文件/根:

<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需要爲了適當地編譯你的文件。

希望我幫助:)

編輯:

哎呀我的壞,我沒有注意到在文件中存在的標籤。無論如何,它仍然可以解決你的問題,你可以刪除舊的標籤,並保留這些。

0

在我的情況下,我從某處下載了控件。所有源文件都在一個文件夾中,並且resx文件位於App_LocalResources子文件夾中。我其實並不關心resx文件中的任何部分,我認爲它主要是自動生成的空白標籤。所以我剛剛刪除了resx文件。刪除resx文件後,控件編譯成功。