无法从 Windows Phone 8.1 访问 .NET 4.5 PCL 中的本地化资源

2024-04-30

我在访问针对 .NET 4.5 的可移植类库中的本地化字符串资源时遇到问题。

我允许用户在第一页上选择语言,并在其他页面上获得本地化体验。我试图通过代码获取资源来实现这一点

MyTextBloxk.Text = PasswordResetMethod_Page.Title;

PasswordResetMethod_Page 是从 .resx 自动生成的类

在 WP 8.1 模拟器上一切正常,但是当我尝试将其部署到真实设备时,我得到了

错误:DEP6810:MdilXapCompile.exe 失败,错误代码 1004。请参阅 日志档案 'C:\Projects\WP81-ResourceBug\ResourceBugRepro.WP81\obj\Debug\MDIL\MDILXapCompileLog.txt' 更多细节。

错误:编译过滤器参数指定的文件不存在: C:\Projects\WP81-ResourceBug\ResourceBugRepro.WP81\obj\Debug\MSIL\ar\ResourceLib.resources.dll

无效的论点

重现:

  1. 克隆仓库https://github.com/konradbartecki/WP81-ResourceBug https://github.com/konradbartecki/WP81-ResourceBug
  2. 设置WP8.1为启动项目
  3. 部署到设备

在模拟器上工作正常,在部署到真实设备时不起作用


不幸的是描述的解决方法在菲尔·霍夫博客上 http://blogs.msdn.com/b/philliphoff/archive/2014/11/19/missingmanifestresourceexception-when-using-portable-class-libraries-in-winrt.aspx对我来说效果不太好。 我已经开发了自己的解决方法。事实证明,如果您仅使用 .resx 文件来存储字符串值,那么您可以轻松地将它们转换为 .resw。

因此,我正在做的就是自动从 PCL 转换所有 .resx 文件,并将其放入 Windows Phone 8.1 项目中的本机结构化文件夹中,并使用我编写的这个工具在每次构建时刷新它们。

https://github.com/konradbartecki/ResxHell https://github.com/konradbartecki/ResxHell

然后我可以通过这样的代码轻松访问我的字符串资源

var resourceLoader = new ResourceLoader();
var localizedText = resourceLoader.GetString("MyCustomReswFile/MyCustom");

为了实现良好的绑定,我最终创建了 ValueConventer 和小型本地化帮助程序类,看看这个要点:从 .resw 文件绑定示例 https://gist.github.com/konradbartecki/3e315c3b24f5eb1dd413

使用它,您可以在 xaml 页面中执行以下操作:

//For resource in file Page.Login.resw and string ID "NotUserYet"
<TextBlock Text="{Binding ConverterParameter=Page.Login/NotUserYet, Converter={StaticResource ResString}, Mode=OneWay, Source={StaticResource ResString}}"/>

or string localizedtext = LocalizationHelper.GetString("MyCustomReswFile", "MyStringId");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 Windows Phone 8.1 访问 .NET 4.5 PCL 中的本地化资源 的相关文章

随机推荐

  • CSS 文本对齐不起作用

    我尝试在 CSS 中使用文本对齐 但它不起作用 这是CSS 我也将所有主体设置为居中 这与某些事情有关吗 这是我的CSS Swell text align left 这是我的 HTML a href https www swell com
  • 使用 Scanner 类输入

    我从过去的经历中了解到的是nextInt or nextDouble 将继续搜索 直到在同一行或下一行中找到整数或双精度数 这并不重要 同时通过扫描器类读取字符串作为输入next 考虑空格之前的那些字符串并将光标保持在同一行 其中nextL
  • iOS AppDelegate 和 ViewController 类之间的区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我如何知道 AppDelegate 类中包含哪些代码以及 ViewController 类中包含哪些代码 这两个类都有类似的方法vie
  • CTAD 可以在模板类的成员内部使用吗?

    C 有一个有用的功能 即模板参数隐含在模板类内的代码中A 然而 对于建筑来说 这似乎与 CTAD 发生冲突 如何让 CTAD 优先 例如 这里有一个错误f会员因为A被解释为A
  • 如何使用Netbeans的不确定进度条样式?

    我正在使用 Nimbus 外观和感觉编写 Java 应用程序 不幸的是 Nimbus 外观和感觉的不确定 JProgressBars 的外观是AWFUL 见下文 另一方面 我注意到 Netbeans 与 Nimbus 的外观和感觉有不同的不
  • std::线程构造和执行

    我在 中找不到任何信息文档 http en cppreference com w cpp thread thread thread是否能保证线程对象构造完成后线程实际上正在运行 换句话说 是否可以保证线程构造函数完成后线程函数已经被执行 一
  • Node.js 流“结束”事件未触发

    以下数据流不会触发 结束 事件 数据 事件被触发 我可以看到记录到控制台的每个数据行 var AWS require aws sdk var ogr2ogr require ogr2ogr var JSONStream require JS
  • 正确处理麦克风音频的 React Hooks

    我正在尝试编写一个 React Hook 来处理流音频到 AudioContext 并使用 Meyda 进行分析 https meyda js org https meyda js org 我已经设法使流正常工作并能够提取我想要的数据 但是
  • 使用 Python API 2.0.0.1 运行 Ansible Playbook

    安塞布尔版本 2 0 0 1 我现在已经四处寻找了很多 我发现的大多数文档要么不完整 要么已弃用 这篇文章适用于1 8 4版本 即 https stackoverflow com questions 27590039 running ans
  • 当方法重新运行时,在方法中循环dispatch_after会导致许多同时调度

    我正在创建一个简单的游戏 我有以下代码 void doStuff double delayInSeconds NSNumber randomFloatBetweenLowerBound 0 8f upperBound 2 6f Own ca
  • 使用 gdb 调试反汇编库

    在Linux和Mac OS X中可以使用strapi和next来调试应用程序而无需调试信息 在 Mac OS X 上 gdb 显示在库内部调用的函数 尽管有时会在每个 stepi 指令中推进多个汇编程序指令 在 Linux 上 当我进入动态
  • 字符串初始化的 gcc 诊断不一致

    我正在使用 gcc 4 9 1 Mingw 并使用以下命令编译代码 gcc test c otest exe std c11 迂腐错误 Wall Wextra 此代码给出诊断 int main void char a 5 h e l l o
  • DataImportHandler 未在 solr admin 中索引 mysql 表

    我正在尝试使用 DataImportHandler 在 solr 中索引 mysql 表 但它似乎没有索引 数据配置 xml
  • 在不存储整个数组的情况下单遍查找第 K 大数

    我想到的算法是 保持大小为 K 的最大堆 插入每个元素 如果堆已满 则丢弃较小的值 最后 第K个max是MaxHeap中较小的一个 这将给我 O NlogK 有更好的算法吗 我无法进行快速选择 因为数组无法存储在内存中 根据您的内存限制 您
  • 从 Dotnet Google API 获取用户电子邮件信息

    我正在为 gData 和 Drive C API 开发两个独立的 Oauth2 实现 分别将令牌信息存储在 OAuth2Parameters 和 AuthorizationState 中 我可以刷新令牌并将其用于必要的 API 调用 我正在
  • 当我的活动结束时,如何停止 GPS/位置跟踪?

    我有一个非常简单的 Android 应用程序 它显示 Google 地图视图并使用 GPS 跟踪位置 基本上像这样 public void onCreate Bundle savedInstanceState mLocationManage
  • 使用 Cloud Endpoints for Google App Engine 对 Android 应用程序进行本地测试

    我正在开发一个 Android 应用程序 它使用 Google App Engine Python 中 上的 Google Cloud Endpoints 作为后端 Android 应用程序授权用户在 Android 设备上使用 Googl
  • Highcharts - 触发 legendItemClick 事件

    我想触发与当您选择项目图例但从外部 html 按钮时触发的事件相同的事件 是否可以 我创建了一个 jsfiddle 来展示它 http jsfiddle net YcJF8 1 http jsfiddle net YcJF8 1 conta
  • 使用 Apache Benchmark 测试 PHP 项目的性能?

    如何使用 Apache Benchmark 测试 PHP 应用程序的性能 我的环境是 Ubuntu Linux 有我可以安装的软件包吗 如果您安装了 Apache 2 则已经安装了 Apache Benchmark 看man ab关于如何使
  • 无法从 Windows Phone 8.1 访问 .NET 4.5 PCL 中的本地化资源

    我在访问针对 NET 4 5 的可移植类库中的本地化字符串资源时遇到问题 我允许用户在第一页上选择语言 并在其他页面上获得本地化体验 我试图通过代码获取资源来实现这一点 MyTextBloxk Text PasswordResetMetho