2011-02-25 120 views
1

這是我的代碼,當檢索資源文​​件。無法讀取資源文件

ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager("Resource.resx", @"c:\", null); 

resourceValue = resourceManager.GetString("key1"); 

但我每次運行這個時都得到這個異常。

找不到任何資源 適合在磁盤上指定的區域性 (或區域性)。 baseName的:Resources.resx locationInfo:空文件名: Resources.resx.resources

什麼是錯在我的代碼?

+0

這個討論有幫助嗎? http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/30d3f13f-0f2e-4852-833f-32d3f557c38a/ – decyclone

回答

2

它正在尋找不同的文件,as mentioned on msdn,並在您的異常消息。

baseName的 類型:System 資源的根名稱。例如,名爲 「MyResource.en-US.resources」的 資源文件的根名稱爲 「MyResource」。

將「Resource」作爲baseName傳遞給方法時,應將文件命名爲「Resource.resources」。當你想爲不同文化的自定義資源時,你應該將它們命名爲「Resource.en-US.resources」,其中「en-US」部分被所需的ISO culture name所取代。

+0

那我該怎麼辦? – yonan2236

+0

@ yonan2236:更新了答案。正如Sébastien所說,當然你需要確保你有有效的資源文件。 –

5

Steven是對的,它正在尋找一個.resources文件。你需要用resgen編譯你的resx文件:http://msdn.microsoft.com/en-us/library/ccec7sz1(v=vs.71).aspx

更多信息:resx文件只是一個文件,它描述瞭如何創建一個資源文件。當您使用resgen編譯它(編譯正確的單詞?)時,它將獲取所有圖像,文本等,並將它們合併到您可以分發和使用的實際資源文件中。

我建議以下閱讀,它可能有所幫助:http://edndoc.esri.com/arcobjects/9.1/ArcGISDevHelp/DevelopmentEnvs/DotNet/WorkingWithResources.htm

+0

我在哪裏可以下載這個 – yonan2236

+0

你已經擁有了它,它是框架的一部分。 –