使用Win32应用程序正确打包Desktop Bridge UWP应用程序

时间:2018-02-09 10:04:15

标签: wpf uwp desktop-bridge .net-native

我们已经有一个适用于x86,x64和ARM的UWP应用程序。关于商店认证,一切都很好,所有测试都通过,包括.NET本机编译。

我们希望使用桌面网桥(类似于此处指定的内容:https://blogs.msdn.microsoft.com/appconsult/2016/12/19/desktop-bridge-the-migrate-phase-invoking-a-win32-process-from-a-uwp-app/)向主UWP添加一个小型.NET 4.6.1 WPF侧踢应用(x86,x64)版本。 WPF应用程序在一些本机dll上有三个依赖项(x86和x64),它们与应用程序的其余部分打包在一起。

我们将WPF.exe应用程序和dll添加到现有的UWP软件包(如上面博客文章中指定的 - 使用 xcopy )并为HockeyApp构建了软件包。在本地和功能上,一切都适用于x86和x64。上传到ms dev中心后,Store认证失败,并出现以下错误:

  

“包裹验收验证错误:使用桌面转换的应用程序   必须预编译Bridge并且需要.NET Native框架   通过.NET Native工具链“

- 但已为UWP Release x86,x64启用本机编译。

然后,我们尝试创建 Windows应用程序打包项目(如此处所述:https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-packaging-dot-net#generate-packages-for-your-desktop-bridge-app),并将UWP应用程序和WPF作为依赖项添加。然后我们创建了一个新的应用程序清单和存储关联(遗憾的是,似乎无法重用UWP应用程序中的现有清单)。我们为(x86 x64 Release)构建了应用程序商店包,并在本地成功测试了所有内容。然后我们将包上传到win开发中心并再次出现与以前相同的错误

  

“包裹验收验证错误:使用桌面转换的应用程序   必须预编译Bridge并且需要.NET Native框架   通过.NET Native工具链“。

作为后续工作,我们从Windows应用程序打包项目中删除了UWP项目,并将WPF应用程序设置为入口点。然后我们构建了一个商店包,上传了它,并且.NET本机编译错误消失了。这很奇怪......

不知何故,UWP和WPF的组合(即使为UWP启用了本机编译)也会导致此认证错误。我们感觉包装出了问题。

我们真的希望这个组合有效,或者我们将不得不回归到拥有两个独立的应用程序:一个纯UWP和一个打包的WPF伴侣应用程序需要单独安装。我们真的希望我们不必这样做。我不确定我们做错了什么,目前我的想法已经用完了。

PS:我们也知道我们需要填写并提交有关限制能力的表格:完全信任。但在我们这样做之前,我们需要确保其他一切都很好。

1 个答案:

答案 0 :(得分:5)

更新4/21/2018 不再需要下面解释的解决方法,实际上商店将不再接受。使用Win32扩展正确打包UWP应用程序的正确方法是使用新的VS Packaging Project,然后在VS中创建该项目的商店包。详细信息在此博客文章中,请参阅示例#3以了解此特定情况: https://blogs.windows.com/buildingapps/2017/12/04/extend-desktop-application-windows-10-features-using-new-visual-studio-application-packaging-project/#uvfV1r7937WrSkX2.97

以下的答案

对于包含UWP和Desktop .NET二进制文件的软件包,您在商店提取过程中遇到了一个已知缺陷。 Store团队正积极致力于解决此问题,因此它将自动用于此类提交。在此期间,您可以执行以下操作以取消阻止:

按如下方式手动创建your.appxupload(请参见下面的屏幕截图):

  1. 转到AppPackage的输出文件夹
  2. 选择.appxsym文件和.appxbundle文件
  3. 从那些
  4. 创建一个新的.zip文件
  5. 将.zip文件重命名为.appxupload
  6. 使用新的.appxupload文件重新提交到商店
  7. enter image description here

    enter image description here

    enter image description here