Меню

Преобразование приложения Windows в универсальное


В обновлении Windows 10 Anniversary Update, выход которого запланирован на лето этого года и обзор новых возможностей которого мы уже опубликовали, компания Microsoft даст разработчикам возможность преобразовывать традиционные программы для рабочего стола Windows в универсальные приложения (Universal Windows Platform, UWP). При желании это может сделать каждый пользователь, а не только разработчики.

В преобразователь Windows 10 нужно ввести файл формата .msi или .exe, а на выходе будет получен файл формата .appx. Далее можно загрузить его на свой компьютер, а разработчики смогут выставить его в магазин Windows. Эта функция станет доступной широкому кругу пользователей вместе с выходом Anniversary Update (Юбилейное обновление) летом этого года.

Данная функция является результатом развития проекта Microsoft Centennial, призванного перенести приложения на архитектуре Win32 и .NET в магазин в виде универсальных приложений.

Для чего это нужно

У многих пользователей может возникнуть вопрос — зачем преобразовывать программы с рабочего стола в универсальные приложения?

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


Новая платформа приложений Microsoft работает в «песочнице», что имеет плюсы с точки зрения безопасности над обычными программами рабочего стола. Преобразователь проанализирует поведение приложения рабочего стола и создаст для него отдельную песочницу с разрешениями для нормального функционирования. Если приложение скомпрометировано, оно не сможет выбраться из своей песочницы и навредить остальной части системы. Приложения будут устанавливаться и удаляться чисто, не оставляя в файловой системе и реестре мусора.

Несмотря на песочницу, приложения сохранят свою силу, при этом получив преимущества универсальных приложений. Документация Microsoft говорит: «В виде универсального приложение может делать всё то же самое, что и классические программы рабочего стола. Оно взаимодействует с виртуальным представлением реестра и файловой системы, которые неотличимы от реальных».

Ограничения

У этого подхода имеются важные ограничения. Преобразователь работает только в Windows 10 Anniversary Update. На данный момент он функционирует в сборке Windows 10 Insider Preview 14316 и более новых, так что потребуется быть участником программы тестирования Windows Insider и использовать сборку Insider Preview системы Windows 10.

Эта функция требует наличия редакций Professional или Enterprise. Пользователи Windows 10 Home не смогут использовать Desktop App Converter. В сборке 14316 он работает только в Windows 10 Enterprise, но скоро появится поддержка Windows 10 Professional. Сейчас инструмент поддерживается только в 64-разрядных системах Windows, получающиеся пакеты AppX можно установить также только на 64-разрядные версии Windows. В будущих сборках Insider это изменится.

Получающиеся приложения предназначены для работы в Windows 10 на компьютерах. Они не работают на смартфонах на Windows 10 Mobile, на Xbox One, HoloLens, Surface Hub и других устройствах платформы Windows 10, которые поддерживают универсальные приложения. Если вы разработчик, Microsoft даёт возможность превратит приложения рабочего стола в кроссплатформенные универсальные приложения: «Если вы решите вывести функциональность приложения из доверенного раздела приложения в раздел контейнера приложения, тогда приложение сможет работать на любом устройстве под управлением Windows 10».

К сожалению, некоторые типы функциональности приложений не поддерживаются. Приложения нельзя запускать с правами администратора и другими типами низкоуровневого системного доступа. Microsoft предоставляет список запрещённых приложениям действия.

Как установить преобразователь приложений

Если у вас установлена нужная сборка Windows 10 Insider Preview, можно скачать и установить Desktop App Converter с сайта Microsoft Developer. Скачайте файлы DesktopAppConverter.zip и BaseImage-14316.wim. Распакуйте файл DesktopAppConverter.zip в папку и туда же поместите файл BaseImage. Если уже вышла новая сборка Windows 10, то будет другой файл BaseImage — их версии должны совпадать.

Нужно также скачать и установить пакет средств разработки программного обеспечения Windows 10 SDK.

Преобразование приложения Windows в универсальное

Следом нужно запустить окно PowerShell с правами администратора. Для этого откройте меню «Пуск», введите в поиск PowerShell, нажмите правой клавишей мыши на ярлык и выберите команду «Запустить от имени администратора».

Измените политику выполнения PowerShell нижеприведённой командой. Согласитесь на внесение изменений, введя символ Y.

Set-ExecutionPolicy bypass

Запустите следующую команду, поменяв C:\\Users\\NAME\\Downloads\\DesktopAppConvertor на путь к папке с конвертером на вашем компьютере:

cd -Path C:\\Users\\NAME\\Downloads\\DesktopAppConvertor

Установите Desktop App Converter командой:

.\\DesktopAppConverter.ps1 -Setup -BaseImage .\\BaseImage-14316.wim

При запросе перезагрузите компьютер и выполните команду снова.

Преобразование приложения Windows в универсальное

Как преобразовать приложение рабочего стола

Теперь можно запускать скрипт DesktopAppConverter.ps1 из окна PowerShell с правами администратора для преобразования настольного приложения в универсальное всего одной командой. Для этого нужен установочный файл приложения. Для примера рассмотрим программу VLC.

Для просмотра списка доступных опций запустите команду:

get-help .\\DesktopAppConverter.ps1 -detailed

Команда для редактирования приложения:

.\\DesktopAppConverter.ps1 -ExpandedBaseImage C:\\ProgramData\\Microsoft\\Windows\\Images\\BaseImage-14316
–Installer C:\\Installer\\MyApp.exe -InstallerArguments «/S» -Destination C:\\Output\\MyApp
-PackageName «MyApp» -Publisher «CN=» -Version 0.0.0.1 -MakeAppx -Verbose


Эта команда позволяет добавлять имя издателя, версию, название пакета, указывать местонахождение установочного файла и папку для установки приложения. Опция -InstallerArguments «/S» передаёт инсталлятору переключатель /S, что позволяет проводить установку без вмешательства пользователя. Без этого приложение невозможно будет конвертировать.

Инсталлятор приложения должен находиться в отдельной папки без других файлов, иначе они могут быть скопированы в пакет .appx.


Для VLC команда следующая:

.\\DesktopAppConverter.ps1 -ExpandedBaseImage C:\\ProgramData\\Microsoft\\Windows\\Images\\BaseImage-14316
–Installer C:\\Users\\chris\\Downloads\\vlc\\vlc-2.2.2-win32.exe -InstallerArguments «/S» -Destination C:\\Output\\VLC
-PackageName «VLC» -Publisher «CN=VideoLAN» -Version 0.2.2.2 -MakeAppx -Verbose

Преобразование приложения Windows в универсальное

Конвертер выдаст пакет .appx, который и представляет собой универсальную версию приложения.

Преобразование приложения Windows в универсальное

Как установить приложение, не подписывая его

Обычно приложения необходимо подписывать действительной подписью, прежде чем их можно будет установить. Microsoft рекомендует создать самоподписывающийся сертификат и подписать приложение им. Помогут сделать этого нижеприведённые инструкции.

Если вы хотите установить приложение только на свой компьютер, быстрее сделать это без всяких подписей. Windows 10 позволяет это, если ставить «неупакованное» приложение из папки.

Для этого откройте окно PowerShell с правами администратора и выполните команду:

Add-AppxPackage -Path C:\\Path\\to\\AppxManifest.xml -Register

Вы найдёте файл AppxManifest.xml рядом с файлом Application.appx в папке с результатом.

Теперь можно запускать приложение из меню «Пуск». Оно будет называться «Приложение Windows» (Windows app) вместо «Приложение рабочего стола» (Desktop app), в остальном оно выглядит как обычное классическое приложение.

Преобразование приложения Windows в универсальное

Как подписать и установить приложение

Есть метод и сложнее, но он не нужен, если вы уже установили приложение.

Обычно .appx можно установить при наличии действительной подписи. Microsoft рекомендует использовать приложение signtool.exe из состава Windows 10 SDK для создания самоподписывающегося сертификата, что позволит устанавливать и тестировать приложение на своём компьютере.

Откройте окно командной строки с правами администратора и запустите следующие команды для создания самоподписывающегося сертификата и подписания им .appx:

cd «C:\\Program Files (x86)\\Windows Kits\\bin\\x64»
MakeCert.exe -r -h 0 -n «CN=Publisher» -eku 1.3.6.1.5.5.7.3.3 -pe -sv my.pvk my.cer
pvk2pfx.exe -pvk my.pvk -spc my.cer -pfx my.pfx
signtool.exe sign -f my.pfx -fd SHA256 -v C:\\Path\\to\\application.appx

Указываемый в «CN=Publisher» издатель должен совпадать с издателем, указанным при создании файла AppX. Для VLC это «CN=VideoLAN».

Будет предложено ввести пароль. Поле можно оставить пустым.

Преобразование приложения Windows в универсальное

Теперь .appx можно установить в PowerShell с правами администратора командой

Add-AppxPackage C:\\Path\\to\\application.appx

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



  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(1 голос, в среднем: 5 из 5)
Читайте также:
Обсуждение: 1 комментарий
  1. Денис:

    Собрал приложение в WINDOWS FORM. Пытаюсь его конвертировать в универсальное.
    Все скачал и установил. После ввода команды VERSION (допустим 1.0.0.0)выбивает ошибку.

    ValidateInstaller: fatal error 1210: installer (C:\\Users\\GRK_360\\Desktop\\instal\\setup.exe -InstallerArguments «/S») not found
    C:\Users\GRK_360\Desktop\DesktopAppConverter\converter_util\InputValidation.ps1:22 знак:9
    + throw «ValidateInstaller: fatal error 1210: installer ($insta …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : OperationStopped: (ValidateInstall…«/S») not found:String) [], RuntimeException
    + FullyQualifiedErrorId : ValidateInstaller: fatal error 1210: installer (C:\\Users\\GRK_360\\Desktop\\instal\\setup.exe -InstallerArguments «/S») not found

    Типа файл не найден. Путь верный, имя файла также. С чем это может быть связано???

Поделитесь своим мнением

Все права защищены © 2023 OSDAILY.RU · Копирование материалов запрещено · Карта сайта
Наверх