使いやすいmsi Installerを使用してWindows ストア アプリをインストールしたいと考えています。Visual Studio インストーラーを使用して msi パッケージを作成しています。Windows ストア アプリは、ストアなしで、PowerShell経由でのみインストールできます。
作業中: インストーラーは正常に完了しました。「AllowAllTrustedApps」に必要な変更と、証明書のインストールが機能しています。
機能しない: PowerShell で C# コードを使用して appx パッケージをインストールしても何も起こりません
PowerShell 経由で証明書をインストールすると、次のように機能します。
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
invoker.Invoke("certutil.exe -addstore -f \"TrustedPeople\" \"C:\\Program Files\\App_1.0.0.0_x64.cer\"");
}
appx のインストールが機能しません:
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
invoker.Invoke("Add-AppxPackage -Path \"C:\\Program Files\\App_1.0.0.0_x64.appx\"}");
}
.ps1 ファイルでもこれを試しました。私の考えでは、アプリが PowerShell にインストールされたときに表示されるプログレス バーをコードが処理できず、アプリが強制終了されたのではないかと考えました。そこで、新しい PowerShell ウィンドウを開始したいと思いました。
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
invoker.Invoke("cmd \c start powershell -Command {Add-AppxPackage -Path \"C:\\Program Files\\App_1.0.0.0_x64.appx\"}");
}
しかし、それはウィンドウを非常に速く閉じるため、実際には読めない例外を生成します。例外には次のものが含まれます。
プロセスがローカル システム アカウントを使用しているため、パッケージの追加が拒否されました。
しかし、それは管理者権限で実行されています! PowerShell を直接使用してすべてをインストールすると機能します。したがって、すべてのコマンドは正しいはずです。何が間違っているのですか?もう何をググればいいのかわからない...よろしくお願いします
よろしく、 セバスチャン・ネウロー