环境:Visual Studio 2015,Xamarin 4.7.9.45,Xamarin Android 7.4.5.1
我的开发环境过去一直工作到昨天,现在我无法正常调试。在加载字符串资源时,AppResources.designer.cs
中的以下代码会引发"文件未找到"例外:
public static string Button_Username {
get {
return ResourceManager.GetString("Button_Username", resourceCulture);
}
}
资源文化是" en-US。"确实定义了字符串资源Button_Username
。否则,上面的代码行甚至不会出现在自动生成的AppResources.designer.cs
文件中。
在调试器中检查异常时,Xamarin似乎正在尝试加载以下文件:
/storage/emulated/0/Android/data/myapp.mycomp.com/
files/.__override__/en-US/MyProject.resources.dll
我们为许多其他语言生成MyProject.resources.dll
但不是en-US,因为它是默认语言。为什么Xamarin试图加载这个DLL?不应该查看resources.arsc文件吗?问候。
答案 0 :(得分:1)
我们为许多其他语言生成MyProject.resources.dll但不是en-US,因为它是默认语言。为什么Xamarin试图加载这个DLL?不应该查看resources.arsc文件?
resources.arsc
适用于Android Native本地化。但您目前正在开发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
文件中的字符串。