通过Visual Studio在桌面上桥接的桌面应用程序可以调用UWP API吗?

时间:2019-07-16 22:18:14

标签: uwp windows-10 desktop-bridge

我对致电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文件:

enter image description here

2 个答案:

答案 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软件包都已安装,并且可以完全相同的方式使用。