Перетворення 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

Цю функцію може використовувати будь-хто, але швидше за все виберуть тільки розробники (і системні адміністратори). На щастя, процес дуже простий для розробників, якщо їх застосування не вимагають функціональності, не підтримуваної в пісочниці універсального додатка.