powershell.exe 以外の netfx ホストで Appx モジュールを使用する方法

Appx PowerShell モジュールは、.netfx のサポートを継続しながら、将来の .netcore に確実に適合するように、netstandard2.0 にターゲットが変更されました。 再ターゲットすると、非互換性が生じます。モジュール内の Appx コマンドレットは、.NET Framework ランタイムで PowerShell (.exe) の外部のプロセスから呼び出された場合には機能しなくなります。

これの回避策として、powershell.exe 以外に netfx ホストで Appx モジュールを使用するには、次のいずれかの方法があります。

オプション 1: netfx ランタイム環境で Appx PS Module コマンドレットを使用する各プロセス (powershell.exe以外) は、そのプロセスからアクセスできる場所に次の 4 つのランタイム アセンブリを追加します。 通常、これは、これら 4 つのランタイム アセンブリをプロセスの *.exe ファイルの隣に配置することによって行われます。

  • 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)

これらの 4 つのランタイムアセンブリは、それぞれの NuGet パッケージ (バージョン4.5.0) に含まれています。

オプション 2: プロセスのランタイム環境を netfx から netcore に再ターゲットします。