有没有办法在UWP项目中安装win32应用程序?(因为在uwp项目中我无法添加wmi调用和注册表的引用)。如果是如何实现的?
答案 0 :(得分:1)
经典的win32应用程序可以通过读取注册表在设备上安装win32应用程序。但在商店应用程序中,简而言之,它不能。商店应用程序在隔离的沙箱中运行,无法读取系统级注册表。有关商店应用不支持访问注册表的原因的详细信息,请参阅this thread。
但是,如果您不希望将应用程序上传到Windows应用商店,则可以尝试使用Brokered Windows运行时组件来支持侧载Windows应用商店应用。从本质上讲,它允许您使用UWP应用程序调用托管在不同进程中的Win32 API,该进程在App容器之外运行。
对于VS2015的代理WinRT组件模板,您可以下载here。
有关Brokered Windows Runtime Components的更多详情和示例,请参考this video和this document。
答案 1 :(得分:0)
有没有办法在系统中安装uwp应用程序?我尝试使用PackageManager类bt它不起作用。还有其他方法吗?。我不想使用powershell。
为了获取已安装的商店应用,我已经测试了PackageManager课程。它确实运行良好,据我所知它是安装商店应用程序的最佳方式。代码如下:
var packageManager = new PackageManager();
IEnumerable<Windows.ApplicationModel.Package> packages = (IEnumerable<Windows.ApplicationModel.Package>)packageManager.FindPackagesForUser("");
var list = packages.ToList();
请注意,在uwp上运行的这些代码需要packageManagement
限制功能。有关特殊功能和限制功能的更多详细信息this。并且您的应用无法上传到Windows商店。
在传统的Win32项目中使用此代码只需引用this document中的示例。