2015-05-01 2 views
1

Я работаю над приложением Windows Store (JavaScript/HTML/CSS), которое будет развернуто непосредственно на устройствах нашего предприятия.Как экстернализировать свойства в приложении Windows Store

Я хочу, чтобы источники данных (URL-адреса для Restful web API) были частью конфигурации, а не встроены в само приложение, поэтому я могу установить их во время развертывания (например, установить тестовые URL-адреса и URL-адреса prod).

В общем, я хочу хранить текстовые переменные в config, которые являются внешними по отношению к приложению, и может быть как-то втянута в приложение.

Я думал, что могу установить некоторые переменные среды или что-то в этом роде, но приложения Windows Store не могут их прочитать.

Любые идеи?

+0

Вы можете сохранить настройки в файле XML и прочитать его из приложения Windows Store – demas

+0

@demas Могу ли я читать из XML-файла, внешнего для приложения, без необходимости выбирать его в сборщике файлов? – Planky

ответ

1

Вы можете, конечно, сделать HTTP-запрос из приложения при запуске, чтобы получить файл конфигурации, но это, конечно, предполагает подключение, которое может или не может работать в вашем сценарии. Для Store-приобретенного приложения это действительно единственный выбор.

В вашем случае, однако, вы будете выполнять боковую загрузку через Powershell, правильно? (Это подразумевается при установке непосредственно на устройства.) В этом случае сценарий Powershell работает в полном доверии и будет иметь доступ к файловой системе во время процесса. Это означает, что скрипт может легко развернуть файл конфигурации в локальной папке appdata приложения, которую приложение забирает при запуске. Пакет приложений должен также содержать файл конфигурации по умолчанию, который он копирует в эту папку appdata, если такой файл не существует при запуске.

Документация для скрипта add-appxpackage, который выполняет установку, находится здесь: https://technet.microsoft.com/en-us/library/hh856048.aspx.

Другой вариант, который вы, возможно, сможете использовать, заключается в создании различных версий ваших пакетов для развертывания тестирования и производства. В Visual Studio можно настроить процесс сборки, чтобы выборочно вводить разные версии файла в зависимости от цели сборки (например, Debug или Release). У меня есть блог, который описывает эту технику на http://www.kraigbrockschmidt.com/2014/02/25/differentiate-debug-release-builds-javascript/. Это позволит вам упаковывать в пакет различные версии файла конфигурации, которые вы затем читали из места установки пакета во время выполнения или копировали в appdata, если вы хотите внести изменения во время выполнения.

Я упоминаю этот метод для создания разных пакетов, потому что это то, что вам не нужно делать ничего, кроме изменения цели сборки. Он выполняет то, что вы делаете с директивами #ifdef precompiler на других языках, которые недоступны для JavaScript.

Смежные вопросы