2017-10-04 53 views
0

環境:Visual Studio的2015年,Xamarin 4.7.9.45,Xamarin的Android使用7.4.5.1Xamarin尋找資源在錯誤的地方

我的開發環境中正常工作,直到昨天,現在我無法正常調試。當裝載字符串資源,從AppResources.designer.cs下面的代碼拋出一個「文件未找到」的異常:

public static string Button_Username { 
    get { 
     return ResourceManager.GetString("Button_Username", resourceCulture); 
    } 
} 

資源文化是「EN-US」。字符串資源Button_Username確實已定義。否則,上述代碼行甚至不會出現在自動生成的AppResources.designer.cs文件中。

在Debugger檢查例外,它似乎Xamarin試圖加載以下文件:

/storage/emulated/0/Android/data/myapp.mycomp.com/ 
    files/.__override__/en-US/MyProject.resources.dll 

我們產生MyProject.resources.dll許多其它語言,但沒有EN-美國,因爲它是默認語言。爲什麼Xamarin試圖加載這個DLL?它不應該查看resources.arsc文件嗎?問候。

回答

1

我們爲許多其他語言生成MyProject.resources.dll,但不是en-US,因爲它是默認語言。爲什麼Xamarin試圖加載這個DLL?它不應該查看resources.arsc文件嗎?

resources.arsc適用於Android本地化本地化。但是您目前正在開發Xamarin.Forms應用程序並使用其本地化,其中相關的.resw文件將被編譯爲MyProject.resources.dll,並且您的項目將en-US設置爲默認文化。

如果您已創建AppResources.en-US.resw文件和當前的文化是en-US。您的應用程序將嘗試查找該文件,該文件包含在.../en-US/MyProject.resources.dll中。

如果您沒有創建AppResources.en-US.resw您的應用程序將搜索AppResources.resw文件中的字符串。

+0

謝謝你的幫助。在VS2015上運行修復後,問題似乎消失了。但是,儘管我們的Xamarin Forms應用程序,我們沒有任何en-US/Myproject.resources.dll,仍然一切正常。讓我覺得正在使用resources.arsc。問候。 – Peter