0

首先,我安装了 winget-cli 并在设备上打开命令提示符,我可以得到 winget 版本。

参见 [https://user-images.githubusercontent.com/22248019/127574830-3f01c414-09c2-4a29-bbe6-60a62ea49b18.png][1] 上的 image1

该设备还安装了我们的应用程序,该应用程序可以以编程方式从命令提示符获取输出。就像从我们的应用程序中输入“ipconfig”一样,您可以获得设备的IP地址信息。但是当我输入“winget -v”时,只返回“'winget'不被识别为内部或外部命令”。下图显示了我们应用程序中的输出。您可以看到输入的命令会得到正确的输出,除了 winget 命令

参见 [https://user-images.githubusercontent.com/22248019/127573134-9b78ad99-9c0b-4671-b146-62c60ef74866.png][2] 上的图 2

这段代码如下所示:

char sBuffer[256];
while (fgets(sBuffer, sizeof(sBuffer) - 1, pipe) != NULL) {
        cout << "winget version result:" + sBuffer;
}

Does anyone know why this not working


  [1]: https://user-images.githubusercontent.com/22248019/127574830-3f01c414-09c2-4a29-bbe6-60a62ea49b18.png
  [2]: https://user-images.githubusercontent.com/22248019/127573134-9b78ad99-9c0b-4671-b146-62c60ef74866.png
4

1 回答 1

0

该错误似乎与应用程序正在运行的上下文有关。Windows 包管理器通过 Microsoft Store 中的应用安装程序提供。MSIX 包是为用户而非系统注册的。如果应用程序代码在注册的用户上下文下运行并且错误仍然存​​在,请查看故障排除指南

于 2021-10-07T14:34:35.710 回答