【问题标题】:How to externalize properties in a Windows Store App如何在 Windows 应用商店应用程序中外部化属性
【发布时间】:2015-05-03 09:09:43
【问题描述】:

我正在开发一个 Windows 应用商店应用 (JavaScript/HTML/CSS),它将直接部署到我们企业的设备上。

我想将数据源(Restful Web API 的 URL)保留为配置的一部分,而不是内置到应用程序本身中,以便我可以在部署期间设置它们(例如,设置测试 URL 和产品 URL)。

更一般地说,我想将文本变量存储在应用程序外部的配置中,并且可以以某种方式被应用程序拉入。

我以为我可以设置一些环境变量或其他东西,但 Windows 应用商店应用似乎无法读取它们。

有什么想法吗?

【问题讨论】:

  • 您可以将设置保存在 XML 文件中并从 Windows Store App 中读取
  • @demas 我可以从应用程序外部的 XML 文件中读取,而无需用户在文件选择器中选择它吗?

标签: javascript .net windows-store-apps


【解决方案1】:

您当然可以在启动时从应用程序发出 HTTP 请求以检索配置文件,但这当然假设连接可能在您的场景中工作或可能不工作。对于商店获取的应用,这确实是唯一的选择。

但是,在您的场景中,您将通过 Powershell 进行侧面加载,对吗? (这隐含在直接安装到设备中。)在这种情况下,Powershell 脚本以完全信任的方式运行,并且在此过程中可以访问文件系统。这意味着脚本可以轻松地将配置文件部署到应用程序的本地 appdata 文件夹中,然后应用程序在运行时获取该文件夹。应用程序包还应包含一个默认配置文件,如果该文件在启动时不存在,它将复制到该 appdata 文件夹中。

执行安装的 add-appxpackage 脚本的文档在这里:https://technet.microsoft.com/en-us/library/hh856048.aspx

您可以使用的另一个选项是为测试和生产部署构建不同版本的包。可以在 Visual Studio 中配置构建过程,以根据您的构建目标(例如调试或发布)选择性地引入不同版本的文件。我在http://www.kraigbrockschmidt.com/2014/02/25/differentiate-debug-release-builds-javascript/ 上有一个描述这种技术的博客。这将允许您将不同版本的配置文件打包到包中,然后您可以在运行时从包安装位置读取该文件,或者如果您想在运行时进行更改,则将其复制到 appdata。

我提到这个方法来构建不同的包,因为它不需要你做任何事情,除了改变构建目标。它完成了您在其他语言中使用 #ifdef 预编译器指令所做的事情,这些指令不适用于 JavaScript。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多