C# Cortana应用程序日志

C# Cortana应用程序日志,c#,windows,cortana,C#,Windows,Cortana,我正在开发Cortana应用程序(Windows应用程序C#),并使用以下命令打印调试信息: System.Diagnostics.Debug.WriteLine("voiceCommandName: " + voiceCommandName); System.Diagnostics.Debug.WriteLine("textSpoken: " + textSpoken); 我的问题是:当我使用cortana启动我的应用程序时,我应该在哪里查找这些文本/调试输出?通常需要在应用程序配置文件中配

我正在开发Cortana应用程序(Windows应用程序C#),并使用以下命令打印调试信息:

System.Diagnostics.Debug.WriteLine("voiceCommandName: " + voiceCommandName);
System.Diagnostics.Debug.WriteLine("textSpoken: " + textSpoken);

我的问题是:当我使用cortana启动我的应用程序时,我应该在哪里查找这些文本/调试输出?

通常需要在应用程序配置文件中配置跟踪侦听器才能获得跟踪/调试输出。当你使用cortana时,这不起作用吗?尝试将文件配置为跟踪侦听器-TextWriterTraceListener

要添加跟踪侦听器,请编辑与应用程序名称对应的配置文件。在此文件中,您可以添加侦听器、设置其类型和参数、删除侦听器或清除应用程序以前设置的所有侦听器。配置文件的格式应如下例所示


可以使用跟踪侦听器,但您也可以将Visual Studio配置为等待应用程序启动并自动连接到它:

  • 在visual studio中,打开项目的属性页
  • 导航到“调试选项”页面
  • 启用“不启动,但在启动时调试我的代码”(对于c#项目,winjs/c++项目有点不同)
  • 保存设置
  • 从VS开始调试
  • 观察VS中的输出窗口
VS将构建、部署,然后等待。当您使用Cortana激活应用程序时,VS将自动连接到您的代码,并且可以立即中断断点,或者捕获发送到调试输出的输出,等等


这也适用于作为Cortana后台任务的一部分运行的代码。Cortana设置为注意是否连接了调试器,并且不会过早地超时任务。

Man我刚刚开始windows和Cortana的开发。你能分享一下如何做到这一点的步骤(或链接)吗?这里有一个链接:请参阅“备注”部分以获取示例XML。这应该在App.Config文件中,对吗?我找不到添加应用程序配置文件的方法。。。您还可以帮助我吗?如果您使用Visual Studio:右键单击解决方案资源管理器-->添加-->新项-->Visual C#Items-->应用程序配置文件中的项目。否则,这取决于您使用的工具。此外,您可以使用任何文本编辑器编辑配置文件,即使记事本也适用。配置文件名与应用程序文件名完全相同,但扩展名为“.config”。例如,“mycolapp.exe”和相应的“mycolapp.config”。配置文件必须与相应的“.exe”文件放在同一文件夹中。是否可以增加Cortana超时?每次我调试应用程序时,如果我花费的时间太长(比如5秒),Cortana会关闭应用程序的执行。没有办法手动调整它,Cortana应该检测到已连接调试器并关闭5秒超时,即使在win10 build 10240中也是如此。唯一一次它没有出现是在win10处于技术预览状态时。顺便说一句,John,作为一种解决方法,您可以尝试从中使用PLMDebug。你需要在你的包裹上使用它,看看这是否能改善情况。VS应该自己设置:SYeah,使用VS 2015,我只能调试~5秒,我的Win 10 enterprise不是技术预览版-至少我没有看到任何提到它的内容。这个PLMDebug工具是一个命令行工具,对吗?我如何与Cortana互动?你能给我一个链接吗?我手边没有。这是一个命令行工具,您只需运行并将应用程序id提供给它(而不是Cortana,您正在开发的应用程序)。我上面评论中的链接显示了它是如何使用的。一旦你这样做了,你的应用程序的正常暂停/恢复行为应该被关闭,Cortana应该尊重这一点。然而,VS应该自动执行此操作,所以我很惊讶您需要这样做。
<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener" 
          type="System.Diagnostics.TextWriterTraceListener" 
          initializeData="TextWriterOutput.log" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>