我想使用易于使用的 msi安装程序安装 Windows应用商店应用。 我正在使用 Visual Studio Installer 来创建msi包。 Windows Store应用程序可以在没有商店的情况下通过 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\"}");
}
但是这会产生一个我无法读取的异常,因为它会非常快地关闭窗口。该例外包含以下内容:
添加包被拒绝,因为该进程使用本地 systemaccount。
但是它以管理员权限运行!直接使用PowerShell安装所有内容都可以。所以每个命令都应该是正确的。 任何想法都错了吗?不知道该怎么去google了... 提前致谢
此致 Sebastian Neurohr