如何在通过Desktop App Converter转换为UWP应用程序的WPF应用程序中打开文件对话框

时间:2017-04-20 21:06:32

标签: c# wpf uwp desktop-bridge project-centennial

我有一个我在WPF中创建的应用程序。在WPF当前,我使用Microsoft.Win32.SaveFileDialog文件选择器让用户选择要保存的文件位置。

我正在通过Desktop App Converter应用程序将此应用程序转换为Windows应用商店兼容应用程序。当我在UWP转换的应用程序中使用Win32选择器时,它只会挂起并最终崩溃,所以看起来并不高兴。

看起来有一个与UWP兼容的文件选择器Windows.Storage.Pickers.FileSavePicker,可以使用Nuget包UWPDesktop获得。

不幸的是,这给了我以下警告 -

  

键入' Windows.Storage.Pickers.FileSavePicker'只能在UWP应用程序中使用,而不能用于桌面或百年纪念

这对我来说非常清楚,所以,最后我的问题是我应该使用哪种对话选择器用于桌面转换器UWP应用程序?

似乎有2个选项 -

  1. 我不知道某种第三类文件选择器,它与这两种框架兼容。
  2. 我在应用程序中使用某种检查来查看哪些框架处于活动状态(以某种方式)并使用相应的文件选择器。
  3. 提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以在转换后的WPF应用中继续使用Win32选择器。这是支持的,并且预计会有效。

要回答你在这里看到崩溃的原因: 如果您安装了Office 2016,则最近Office更新引入了一个错误,导致文件选择器对话框因转换的应用程序而崩溃。这个错误的修复程序很快就会在服务更新中发布。

要确认这确实是你遇到的错误,你可以查看你的应用程序的崩溃报告,你应该看到模块grooveex.dll崩溃。

谢谢, Stefan Wick - Windows开发人员平台

答案 1 :(得分:0)

我最终构建了一个示例应用程序,其中只包含一个空白应用程序中存在问题的对话框,并计划通过MS将其发送给Stefan。

当然,一切看起来都不错,所以我多玩了一点,最终弄明白可能发生了什么。

我在执行对话框之前运行了一些异步代码,看起来它会无声地失败,导致应用程序无限期挂起。

我认为这不会对任何人有所帮助,只是想关闭循环。