我对致电Calling UWP APIs from a desktop app感到有些困惑。此链接第一段的最后一句指出:
a WPF, Windows Forms, or Win32 app cannot call UWP API unless the app is packaged in an MSIX package.
使用VS2019
我有desktop-bridged
我的WPF应用程序(由VS2019
开发)。此过程创建了一个文件夹(在...\AppPackages
文件夹下),其内容如下所示。双击该文件夹中的.appxbundle
,我可以成功将应用程序侧面加载到Windows 10
上(它也使我可以选择上载以上传/发布到Microsoft Store
):>
问题:在满足其他要求之后,此应用现在可以调用UWP APIs
吗?如以上链接所述,该应用程序需要打包在MSIX程序包中。而且在下图中没有看到任何MSIX
文件:
答案 0 :(得分:1)
无论打包为APPX还是MSIX,您都可以从桌面桥应用程序调用UWP API。
因此,如果API需要包身份,则使用WPF,Windows 表单或Win32应用程序无法调用它,除非该应用程序打包在 MSIX软件包。
我猜打包在MSIX程序包中是指打包在MSIX或APPX程序包中。他们只是没有提到APPX,因为MSIX是新格式。
但是,请注意,某些UWP API(主要是与UI相关的API)只能从真正的UWP应用中调用,而不能从打包的Win32或Wpf应用中调用。
答案 1 :(得分:0)
是的。在APPX和MSIX程序包之间,还是使用桌面桥,Windows Application Packaging project
或手动使用MakeAppx.exe
打包应用程序之间,都没有重要区别。
如果目标版本设置为1809/2018年10月更新/内部版本17763 / RS5或更高版本,则包文件扩展名为.msix
(如果创建的是bundle,则为.msixbundle
) 。否则为.appx
。
APPX和MSIX软件包都已安装,并且可以完全相同的方式使用。