Como usar o módulo Appx em um host netfx diferente de powershell.exe

O Appx PowerShell Module foi redirecionado para netstandard2.0 para garantir que ele esteja alinhado com o futuro .netcore enquanto continua a oferecer suporte a .netfx. O resultado desse redirecionamento é uma alteração de interrupção que significa que os cmdlets do Appx PS Module (quando executados em um tempo de execução netfx) não funcionarão ao serem executados a partir de processos diferentes do powershell.exe.

Há duas maneiras de atenuar essa alteração para usar o módulo Appx em um host netfx diferente do powershell.exe.

Opção 1: cada processo (diferente do powershell.exe) que deseja usar os cmdlets do Appx PS Module em um ambiente de tempo de execução netfx precisará adicionar os 4 assemblies de tempo de execução a seguir a um local acessível a esse processo. Normalmente, isso seria feito colocando esses quatro assemblies de tempo de execução ao lado do arquivo *.exe do processo.

  • System.Memory.dll (4.0.1.0, netstd, v2.0)
  • System.Numerics.Vectors.dll (4.1.4.0, netstd, v2.0)
  • System.Runtime.CompilerServices.Unsafe.dll (4.0.4.0, netfx, v4.0)
  • System.Security.Principal.Windows.dll (4.1.1.0, netfx, v4.0)

Esses quatro assemblies de tempo de execução podem ser encontrados em seus respectivos pacotes NuGet (versão 4.5.0).

Opção 2: redirecionar o ambiente de tempo de execução do processo para o netcore a partir do netfx.