Параметры установки UWP AppX

Я разрабатываю клиент-серверное приложение UWP и хочу, чтобы оно развертывалось путем загрузки (возможно, с помощью WinAppDeployCmd или MDM) на большой набор устройств администратором. Но для запуска моему приложению необходимо знать IP-адрес сервера, который различается для каждого клиента. Мне нужно каким-то образом передать этот параметр во время развертывания администратором на каждое устройство.

Есть ли способ установить настройки удаленного приложения? Или передать файл конфигурации XML вместе с appx? Или любой другой способ добавить некоторые параметры в процессе установки?


person Vitaliy Nesterenko    schedule 12.04.2017    source источник
comment
Но для запуска моему приложению необходимо знать IP-адрес сервера. Не могли бы вы рассказать, как вашему клиентскому приложению требуется IP-адрес сервера? Внутри метода Onlaunch()? Почему бы не сохранить информацию об IP-адресе сервера в XML-файле внутри пакета приложения и не обновить этот файл перед развертыванием? Если я вас неправильно понял, расскажите подробнее.   -  person Sunteen Wu    schedule 12.04.2017
comment
Приложения UWP работают в песочнице. Насколько я знаю, нет возможности распространять конфиг вместе с appx. Файл конфигурации должен быть внутри appx.   -  person Scavenger    schedule 12.04.2017
comment
Например, используя установщик MSI для обычных приложений, я могу создавать диалоги, чтобы пользователь мог установить некоторые свойства во время установки. И, например, пользователь может установить IP-адрес сервера во время установки, а затем установщик MSI сохранит это значение в реестре или файле конфигурации, чтобы установленное приложение могло его использовать. Я ищу аналогичный процесс для UWP.   -  person Vitaliy Nesterenko    schedule 12.04.2017


Ответы (1)


В отличие от, например. MSI, нет возможности передать "исходные данные" вместе с пакетом для установки. Один из вариантов - установить пакет, а затем добавить свои «данные», например.

  1. Add-AppxPackage foo.appx
  2. appdata = ApplicationDataManager.CreateForPackageFamily (foo_pkg_family)
  3. appdata.LocalSettings.CreateContainer("x").values["y"] = z

Шаг 1 устанавливает пакет, в первую очередь он регистрирует пакет для пользователя. Это создает ресурсы хранения данных приложения пакета для пользователя. Затем вы можете использовать ApplicationDataManager (из процесса Win32/не UWP) для доступа к данным приложения.

Вам может пригодиться AppData.exe. Простой исполняемый файл, использующий ApplicationDataManager для предоставления интерфейса cmdline для AppData. Учитывая это или эквивалент, вы можете написать пакетный файл

@ECHO Off
powershell -c Add-AppxPackage foo.appx
appdata.exe SET foopkgfamilyname local\configuration --value=x --type=string --data=y
person Howard Kapustein    schedule 06.05.2017