无法在UWP应用程序中使用Cortana中的语音命令启动后台应用程序?

San*_*mar 3 cortana uwp

目前我正在使用C#和xaml在我的UWP应用程序中进行cortana集成.我已经按照下面的文章开始使用cortana https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn630430.aspx?f=255&MSPPError=-2147217396 我写了所有需要的代码,我可以使用cortana启动前台应用程序,我可以执行操作.但我尝试使用Cortana启动后台应用程序,应用程序打开直到启动画面然后应用程序崩溃.我按照下面的文章使用Cortana启动后台应用程序 https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn974228.aspx 我按照微软提供的cortana语音命令示例,我已经按照上面的链接,仍然无法做到.有没有其他很酷的文章来解决这个问题,以及如何在我们启动后台应用程序时调试应用程序,以便我可以在代码中保留断点,我能够找出问题.有人请帮我解决这个问题.提前致谢.

And*_*ley 6

您可以通过设置visual studio来等待代码启动来调试Cortana中的后台任务.它将检测Cortana加载您的后台任务,并自动附加:

步骤因项目类型(C#,js或c ++/cx)而异,但调试它的一般步骤是

  1. 打开启动项目的项目属性(右键单击项目 - >属性)
  2. 转到项目属性的Debug(或调试)部分
  3. 将"启动应用程序"中的任何一个设置为"否"(js或c ++应用程序),或者"不启动,但等待我的代码启动"进行检查(c#apps)
  4. 开始调试.

您的代码将部署,但VS将等待.然后触发您的Cortana后台任务,当您的代码触发时它将自动附加到BackgroundTaskHost.exe.

如果你发现VS从不附加并且你无法击中断点,你需要调查你是否错过了某个地方的步骤:

  • 检查以确保您正在安装的VCD具有适当的VoiceCommandService标记条目.目标应与包清单中设置的入口点的名称匹配.拼写和案例事宜.
  • 检查包清单以确保入口点是正确的完整命名空间
  • 检查您的后台任务是否实际包含在构建的已部署输出中.从主应用程序的启动项目添加引用到后台任务(打开启动项目的引用部分,右键单击,添加引用,并引用后台任务的项目).这将导致VS将项目复制到输出,以便Cortana可以找到并运行它.

如果它在断点点击后的某个时刻失败了,你可以跟进它特定失败的地方,如果它没有达到异常,我可能会提出一些建议.