将图像的路径从 "included in the app" 更改为外部源时,它不起作用。为什么?

When changing the path of an image from "included in the app" to an external source, it does not work. Why?

我们正在开发一个应用程序,它使用 json 告诉应用程序图像路径是什么。有一个运行的后台更新程序下载了 json 文件,然后从新的 json 文件中,我们获得了图像的新路径。

应用程序的流程是这样的:

  1. 应用程序启动,检查更新状态。
  2. 如果应用程序需要更新,请转到更新页面。
  3. 将新资产下载到目录中。
  4. 将具有原始资产的原始目录的名称更改为其他名称。
  5. 将包含新资产的新目录的名称更改为原始目录的名称。
  6. 完成后,加载主应用程序。

出于某种原因,none 的图像完全显示出来了。我尝试使用不同的路径前缀,如 ms-appx:///../。我什至尝试直接在 xaml 中设置路径,而不是使用数据绑定。有什么我想念的吗?

编辑:更多信息 - 我在 xaml 中的图像对象上放置了一个 "ImageFailed" 事件。它每次都以 "e" 参数作为 "E_NETWORK_ERROR" 失败。研究这个错误对我帮助不大。

编辑 2:如果我输入精确路径,包括驱动器号和所有内容,它就可以工作。我不明白为什么。

谢谢, 扎克

好吧...需要大量挖掘,但显然对于 Windows 8.1 通用应用程序(我不知道其他 windows 应用程序)ms-appx:/// 的用法是专门对于应用程序包 inside 中的文件,而 ms-appdata:/// 用于应用程序目录中的文件,如 "local", "temp",和 "roaming" 个数据文件夹。

解决方法是将 json 中的所有 ms-appx:/// 更改为 ms-appdata///Local/,因为这些文件已下载到应用程序的本地文件夹中。

希望这可以帮助其他人不必像我一样深入挖掘。

扎克