Os aplicativos do Windows 10 implantados pelo DISM não serão lançados

2

Estou tentando implantar aplicativos em computadores de uma escola usando o DISM com um script de inicialização do computador.

Eu criei um script para enumerar um diretório na rede e instalar o aplicativo nos computadores:

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

Na primeira inspeção, o aplicativo parece ter sido implantado corretamente. No entanto, quando alguém tenta iniciar um aplicativo, aparece uma barra de progresso paralisada:

No entanto, se eu usar o comando em um prompt de commpand elevado, o aplicativo é instalado e iniciado corretamente.

Há algo que eu possa fazer para reparar o aplicativo após a implantação ou implantar corretamente na primeira vez?

    
por John Reid 29.10.2015 / 11:35

1 resposta

3

Bem, acontece que havia uma dependência necessária que não estava instalada no computador em que eu estava. Eu pensei que o comando DISM tinha trabalhado localmente, mas eu estava usando o computador ao lado dele.

Então o que aconteceu?

Neste exemplo, eu estava tentando implantar o aplicativo gratuito Fresh Paint em todos os computadores. Eu tinha baixado da Windows Store usando o Fiddle para pegar o URL.

A execução deste comando no PowerShell mostra-me algumas informações importantes:

> 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}

Portanto, o Fresh Paint tem duas dependências, a biblioteca Visual C e o tempo de execução .Net.

Eu acessei uma máquina recém-instalada e baixei o aplicativo novamente. Desta vez, notei que as dependências são baixadas e instaladas automaticamente. Peguei o URL dos tempos de execução e os coloquei na pasta de implantação, na qual executei o script na pergunta.

Agora, cada máquina instalou automaticamente as dependências junto com o aplicativo em si.

Vale notar que o DISM instalará um aplicativo mesmo que as dependências não sejam atendidas. No entanto, sua contraparte do PowerShell Add-AppxProvisionedPackage verifica dependências e se recusa a instalar o aplicativo. A melhor maneira de verificar se um aplicativo funcionará é tentar este comando antes de usar o DISM.

Por fim, consegui depurar o aplicativo usando o comando de correção do PowerShell que está circulando pela Internet:

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

Isso não apenas conserta os aplicativos para qualquer usuário (útil se o link "Desinstalar" for clicado), mas também gera erros para os aplicativos que não são instalados. Isso me apontou na direção certa para resolver as dependências e, finalmente, fazer com que o aplicativo funcionasse.

    
por 30.10.2015 / 11:45