Вопрос:
Как заставить MSIX appinstaller
выводить правильные настройки во время каждой сборки / публикации?
Контекст:
Это дополнительный вопрос к Почему MSIX не проверяет наличие обновлений автоматически каждый раз, когда приложение запускается при включенной загрузке неопубликованных приложений?
Я бегаю:
- Windows 10 20H2, сборка ОС 19042.928
- Visual Studio 2019 Community Edition, версия 16.9.4
Параметры таргетинга Windows для MSIX следующие:
- Целевая версия = Windows 10, версия 2004
- Минимальная версия = Windows 10, версия 1809
Проект установщика MSIX создает недопустимый файл appinstaller
, который не позволяет приложению автоматически проверять наличие обновлений при каждом запуске. Я могу вручную изменять файл после каждой сборки / публикации, но я не думаю, что мне нужно это делать, потому что это кажется самоубийственным и неправильным.
Вообще говоря, я бы почти проигнорировал создание appinstaller
каждый раз, но файл автоматически увеличивает номер версии. Итак, похоже, что в настоящее время я застрял в какой-то форме ручного вмешательства, либо изменяя разделы schema version
и UpdateSettings
, либо обновляя версию в путях. Может ли это быть связано с запуском Visual Studio Community Edition? Нужен ли мне Professional, чтобы он работал?
Установщик приложений, созданный Visual Studio, что неверно:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="https://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="CN=<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0" />
</UpdateSettings>
</AppInstaller>
Установщик приложений, который мне нужно создать в Visual Studio:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="https://schemas.microsoft.com/appx/appinstaller/2018">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
Мы решили проблему, из-за которой приложение не проверяло автоматические обновления даже при включенной загрузке неопубликованных приложений. Нам нужно добавить в проект MSIX дополнительный элемент типа App Installer. Это создаст имя файла по умолчанию Package.appinstaller *. Этот файл содержит параметры конфигурации для файла установщика приложений, которые необходимы для управления всеми доступными параметрами, включая раздел UpdateSettings.
Некоторые дополнительные функции, которые позволяет установить appinstaller, — это блокировать пользователю запуск приложения без обновления. Это было проблемой для профиля публикации ClickOnce, поскольку он давал пользователю возможность пропустить обновление; мы не смогли найти способ предотвратить это. Однако установщик приложений MSIX позволяет контролировать это поведение.
* НЕ ПЕРЕИМЕНОВАТЬ ЭТОТ ФАЙЛ, ПОТОМУ ЧТО УТИЛИТА BUILD / PUBLISH НЕ ПОЛУЧИТ ЕЕ И ПРИМЕНИТЬ НАСТРОЙКИ К ФАЙЛУ APPINSTALLER. ЭТО, ПОКАЗЫВАЕТСЯ, БЫЛО ОШИБКОЙ / СТАТИЧЕСКИМ-ФАЙЛОМ-СПРАВОЧНИКОМ.
Package.appinstaller
Ссылки:
Дополнительные ссылки: