DISM развернутые приложения Windows 10 не будут запускаться

Я пытаюсь развернуть приложения на компьютерах в школе, используя DISM со скриптом запуска компьютера.

Я создал скрипт для перечисления каталога в сети и установки приложения на компьютеры:

for %%v in (%~dp0*.appx) do (
    DISM /Online /Add-ProvisionedAppxPackage /PackagePath:%%v /SkipLicense
)

При первом осмотре приложение работает нормально. Тем не менее, когда кто-то пытается запустить приложение, появляется индикатор выполнения:

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

Могу ли я что-то сделать, чтобы восстановить приложение после развертывания или правильно развернуть его в первый раз?

1 ответ

Решение

Что ж, получается, что требовалась зависимость, которая не была установлена ​​на компьютере, на котором я был. Я думал, что команда DISM работала локально, но я использовал компьютер рядом с ним.

Так что же случилось?

В этом примере я пытался развернуть бесплатное приложение Fresh Paint на всех компьютерах. Я скачал его из Магазина Windows, используя Fiddle, чтобы перехватить URL.

Запуск этой команды в PowerShell показывает мне важную информацию:

> Get-AppxPackage *fresh*

Dependencies      : {Microsoft.VCLibs.140.00_14.0.22929.0_x86__8wekyb3d8bbwe,
                  Microsoft.NET.Native.Runtime.1.1_1.1.23406.0_x86__8wekyb3d8bbwe}

Итак, Fresh Paint имеет две зависимости: библиотека Visual C и среда выполнения.Net.

Я получил доступ к недавно установленной машине и снова загрузил приложение. На этот раз я заметил, что зависимости автоматически загружаются и устанавливаются. Я взял URL-адрес среды выполнения и поместил их в папку развертывания, где я запускаю сценарий в вопросе.

Теперь каждая машина автоматически устанавливает зависимости вместе с самим приложением.

Стоит отметить, что DISM установит приложение, даже если зависимости не будут соблюдены. Тем не менее, его аналог PowerShell Add-AppxProvisionedPackage проверяет наличие зависимостей и отказывается устанавливать приложение. Лучший способ проверить работоспособность приложения - попробовать эту команду перед использованием DISM.

Наконец, мне удалось отладить приложение с помощью команды исправления PowerShell, которая работает в Интернете:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

Это не только исправляет приложения для любых пользователей (удобно, если была нажата ссылка "Удалить"), но также выводит ошибки для приложений, которые не устанавливаются. Это указало мне правильное направление для разрешения зависимостей и, наконец, заставить приложение работать.

Другие вопросы по тегам