我们遇到了一个用Xamarin加载Mac资源的问题。我们有一个资源 文件名为Resource1.resx。从此资源加载一个字符串时失败 以下代码的文件。请参阅附件示例以创建此问题。 你能提出加载资源的建议吗?
如果您需要更多信息,请告诉我们。请检查 代码(在MainWindows.cs中)如下:
partial void loadResourceButtonClicked(MonoMac.Foundation.NSObject sender){
try{
var b = Resources1.ResourceManager;
var name = b.GetString("Name1");
resultLabel.StringValue = name;
}
catch {
resultLabel.StringValue = "Resource load failed.";
}
}
PS。我们已附上the test project,请检查一下。
感谢。
答案 0 :(得分:1)
你的隐藏'例外:
无法找到适合指定文化的任何资源或 中性文化。确保 " MacResourceTest.Resources1.resources"是正确的 嵌入或链接到汇编" MacResourceTest"在编译时,或 所需的所有卫星组件都是可装载和完全的 签名。
该异常消息的关键阶段是' 确保XXXX已正确嵌入或链接到程序集'。
快速查看您的项目,.resx
文件被错误地标记为BundleResource
的构建操作。 OSX / iOS BundleResource通常用于二进制,xml,文本等。但不是.resx
文件,因为它们来自System.Resources.ResourceManager
,需要添加到CIL程序集中具体方式(主要是由于文化定位)。
1)将.resx
个文件标记为Build Action
EmbeddedResource
2)如果你要隐藏'例外并提供用户友好的'消息,在Console调试消息,日志记录,某处等等中包含实际的异常消息...
3)在向StackOverflow发布问题时,请发布实际的异常消息/调用堆栈。