Может ли пакет MSIX использовать внешний файл для пользовательских настроек?

Мы оцениваем переход с нашего текущего клиент-серверного приложения на .NET Core. В выпуске 3.0 добавлена ​​поддержка WinForms, которая нам нужна для нашего клиента, но ClickOnce не будет поддерживаться. Наше решение устанавливается локально, и нам нужно включить настройки (среди прочего), такие как адрес сервера приложений. Мы динамически создаем пакеты ClickOnce, которые можно использовать для установки и обновления клиентов и включать настройки. Сегодня это работает как шарм. Пользователи устанавливают клиент с помощью пакета ClickOnce, и каждый раз, когда мы обновляем программное обеспечение, мы регенерируем эти пакеты на сайте клиента, и они автоматически получают новую версию с правильными настройками.

Мы рассматриваем MSIX как альтернативу, но у нас возник вопрос: - Можно ли добавить в пакет MSIX некоторые файлы внешних настроек, которые будут использоваться (развертываться) при установке?

Пакет для самого программного обеспечения может быть сгенерирован статически, но как мы можем передать настройки клиентам при первой установке / обновлении?


person Raul    schedule 10.02.2020    source источник


Ответы (1)


MSIX поддерживает пакеты модификации. Это близко к тому, что вы хотите, настройка выполняется с помощью отдельного пакета, установленного после, когда вы устанавливаете основной пакет MSIX вашего приложения.

Его нельзя установить одновременно с вашим основным приложением. ОС проверяет, установлено ли основное приложение, когда вы пытаетесь установить пакет модификации, и отклоняет его установку, если основное не найдено на машине.

Пакет модификации - это отдельный пакет, установленный в отдельном месте. Проверьте ссылку, которую я включил, есть снимок экрана окна PS, где вы можете увидеть путь установки для основного пакета и разные модификации.

Во время выполнения (когда пользователь запускает приложение) ОС знает, что эти два пакета подключены, и объединяет их виртуальные файлы и систему реестра, поэтому приложение «считает», что все ресурсы находятся в одном пакете.

Это означает, что вы можете обновлять основное приложение и пакет модификации по отдельности и развертывать их по своему усмотрению.

А если обновим сам пакет модификации (не трогая основной), будет ли он переустановлен на всех клиентах, которые его использовали?

Как вы развертываете обновления? Вы хотите использовать средство автоматического обновления через Интернет? Или эти пользователи управляются внутри внутренней сети компании и получают все обновления приложений с помощью таких инструментов, как SCCM?

Пакеты модификации были разработаны в основном для ИТ-отделов, чтобы они могли их использовать, и это то, что, как я понял, вам также понадобится.

Пакет модификации развертывается через SCCM или другие инструменты, как и основной пакет, отличий нет.

Для независимых поставщиков программного обеспечения я считаю, что дополнительные пакеты являются лучшим решением. .

person Bogdan Mitrache    schedule 11.02.2020
comment
Спасибо @Bogdan Mitarche. Будет ли пакет модификации автоматически переустановлен при обновлении основного пакета? А если обновим сам пакет модификации (не трогая основной), будет ли он переустановлен на всех клиентах, которые его использовали? - person Raul; 13.02.2020
comment
Пожалуйста. Смотрите мой обновленный ответ на ваши вопросы. - person Bogdan Mitrache; 13.02.2020
comment
Мы устанавливаем / обновляем наш сервер с помощью установки. После установки сервера у нас есть метод, который динамически генерирует пакет ClickOnce для клиентов. Пакет ClickOnce включает настройки для клиента (такие как адрес сервера). Этот метод также используется, когда администратор изменяет некоторые важные параметры, которые необходимо повторно развернуть для всех клиентов. Пакет ClickOnce используется для установки клиентов из локальной папки или http-адреса. Когда мы воссоздаем их, клиенты автоматически обновляются, поскольку пакет ClickOnce настроен на проверку наличия обновлений при запуске. - person Raul; 19.02.2020
comment
Для этого случая я думаю, что больше подходят Optional Packages. Я еще не использовал эту функцию, но вы можете найти более подробную информацию здесь: docs.microsoft.com/en-us/windows/msix/package/optional-packages - person Bogdan Mitrache; 20.02.2020
comment
Еще раз спасибо, Богдан! Я только что подал заявку на предварительную версию MSIX Packaging Tool Insider Preview и надеюсь, что мы сможем оценить, сможем ли мы использовать ее в наших сценариях. Я отмечаю ваш ответ как принятый, так как он нам помогает. - person Raul; 21.02.2020
comment
Рад, что смог помочь Раулю. Поскольку ваше приложение находится в активной разработке, вы можете использовать Visual Studio для создания пакета MSIX. MSIX Packaging Tool - это решение для ИТ-специалистов, которые обычно не имеют доступа к исходному коду приложения. Вот руководство от MSFT: docs.microsoft.com/en-us/windows/msix/desktop/ - person Bogdan Mitrache; 24.02.2020