У меня в очередной раз случилась проблема с приложениями UWP. На этот раз из-за клонирования системы при замене диска. Некоторые приложения просто отказывались запускаться, ссылаясь на недоступность сети. Исправление приложений, сброс настроек и сброс кэша Магазина (wsreset.exe) не помогали никак. В списке обновлений висели ошибки с кодами "0x80242020" и "0x80073D0D". Поиск по кодам ошибок всё так же выводил на сброс Магазина.
Методом тыка я нашел пару способов лечения приложений. Расскажу оба, но оба приводят к сбросу настроек приложений.
Изначально в настройках системы я указал в качестве хранилища приложений другой раздел, который тоже переезжал вместе с системой на новый диск.
Место хранения задаётся в "Параметрах".
Нужно открыть раздел "Система", выбрать слева пункт "Память устройства", пролистать список дисков в самый низ и нажать ссылку "Изменить место сохранения нового содержимого". Теперь можно переназначать разделы, на которые будут записываться данные по категориям.
И о методах, которыми я "лечил" приложения.
Метод первый.
Данный метод я применял к приложениям, которые самостоятельно ставил из Магазина.
- Найти приложение в меню "Пуск";
- Вызвать его контекстное меню;
- Выбрать пункт "Удалить" и подтвердить удаление.
После этого приложение можно будет заново установить из Магазина.
Метод второй.
Этот метод я использовал для приложений, которые не добавляют свои пункты в меню "Пуск". К ним относятся в основном шрифты и всякие плагины.
- Открыть раздел "Приложения" Настроек системы и дождаться загрузки списка установленных приложений;
- Пролистать список и найти приложение, которое отображается примерно так:
- Нажать кнопку "Удалить" и подтвердить удаление.
Этот метод тоже подходит для замены первого, но тут листать приходится больше.
Метод третий.
Этот метод я использовал для поврежденных системных приложений.
Системные приложения работают примерно по тому же принципу, что и встроенные приложения Android. У них всегда есть версия, которая поставляется при установки системы, и версия, которая ставится при обновлении приложения из Магазина. Последняя хранится в указанном месте для новых приложений.
Данный способ я нашел на этой странице.
Нужно запустить интерпретатор PowerShell с правами администратора. Без этого не получится управлять даже своими приложениями.
Сначала надо получить список всех установленных приложений (список получится довольно длинный):
Get-AppxPackage -AllUsers > apps.txt
Для каждого установленного приложения будет примерно такой вывод:
Name : Microsoft.SkypeApp Publisher : CN=Skype Software Sarl, O=Microsoft Corporation, L=Luxembourg, S=Luxembourg, C=LU Architecture : X64 ResourceId : Version : 14.33.41.0 PackageFullName : Microsoft.SkypeApp_14.33.41.0_x64__kzf8qxf38zg5c InstallLocation : C:\Program Files\WindowsApps\Microsoft.SkypeApp_14.33.41.0_x64__kzf8qxf38zg5c IsFramework : False PackageFamilyName : Microsoft.SkypeApp_kzf8qxf38zg5c PublisherId : kzf8qxf38zg5c PackageUserInformation : {S-1-5-21-2505290738-3670303574-3611287779-1001 [Radjah]: Installed} IsResourcePackage : False IsBundle : False IsDevelopmentMode : False NonRemovable : False Dependencies : {Microsoft.NET.Native.Framework.1.7_1.7.25531.0_x64__8wekyb3d8bbwe, Microsoft.NET.Native.Runti me.1.7_1.7.25531.0_x64__8wekyb3d8bbwe, Microsoft.VCLibs.140.00_14.0.26706.0_x64__8wekyb3d8bbwe , Microsoft.SkypeApp_14.33.41.0_neutral_split.scale-100_kzf8qxf38zg5c} IsPartiallyStaged : False SignatureKind : Store Status : Ok
Теперь в файле надо отыскать значение "Name" для нужного приложения. В конце статьи по ссылке есть примеры, из которых можно взять маски для поиска, например, "Аксессуары Xbox" - это "Microsoft.XboxDevices", а "Меню игры" - это "Microsoft.XboxGamingOverlay".
По найденному идентификатору можно удалить приложение с помощью такой команды:
Get-AppxPackage Microsoft.XboxDevices|Remove-AppxPackage
На этом этапе приложение удалено из системы, но исходная версия всё ещё доступна на диске по пути из параметра "InstallLocation". Для приложения "Аксессуары Xbox" у меня этот параметр равен "C:\Program Files\WindowsApps\Microsoft.XboxDevices_300.1806.18002.0_x64__8wekyb3d8bbwe". Дописав к пути "\AppXManifest.xml", можно переустановить приложение следующей командой:
Add-AppxPackage -DisableDevelopmentMode -Register "C:\Program Files\WindowsApps\Microsoft.XboxDevices_300.1806.18002.0_x64__8wekyb3d8bbwe\AppXManifest.xml"
Приложение либо сразу появится в списке, либо начнёт штатным образом устанавливаться из Магазина.
Если каких-то глобальных повреждений нет, то этих способов должно хватить.