调试基于事件的或垃圾邮件报告的 Outlook 加载项

本文讨论在外接程序中实现 基于事件的激活集成垃圾邮件报告 (预览) 时,在代码中启用和设置断点的关键调试阶段。 在继续之前,建议查看 故障排除指南 ,了解如何解决开发错误的其他步骤。

若要开始调试,请选择适用客户端的选项卡。

例如,如果使用 Office 外接程序的 Yeoman 生成器 创建外接程序项目 (,则通过完成 基于事件的激活演练) ,请按照本文中的 使用 Yeoman 生成器创建 选项进行操作。 否则,请按照 其他 步骤操作。 Visual Studio Code应至少为版本 1.56.1。

标记加载项进行调试并设置调试器端口

  1. 从清单中获取加载项的 ID。

    • XML 清单:使用 Id> 元素的值<,即根 <OfficeApp> 元素的子元素。
    • Microsoft 365 (预览版的统一清单) :使用根匿名 { ... } 对象的“id”属性的值。
  2. 在 中创建名为 UseDirectDebuggerHKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer\[Add-in ID]注册表DWORD值。 将 替换为 [Add-in ID] 清单中的外接程序 ID。

    注意

    Developer如果在 下HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\WEF\尚不存在 (文件夹) 键,请完成以下步骤来创建它。

    1. 右键单击 WEF 密钥(文件夹),然后选择新建>密钥
    2. 将新密钥命名为 Developer

    使用 Yeoman 生成器创建:在命令行窗口中,导航到外接程序文件夹的根目录,然后运行以下命令。

    npm start
    

    除了生成代码和启动本地服务器外,此命令还会将此加载项的 UseDirectDebugger 注册表 DWORD 值数据设置为 1

    其他:在 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\WEF\Developer\[Add-in ID]\UseDirectDebugger 注册表 DWORD 值(其中 [Add-in ID] 是清单中的外接程序 ID)中,将值数据设置为 1

  3. 在注册表项 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer\[Add-in ID]中,其中 [Add-in ID] 是清单中的外接程序 ID,使用以下配置创建一个新 DWORD 值。

    • 值名称DebuggerPort
    • 值数据 (十六进制) 00002407

    这会将调试器端口设置为 9223

  4. 启动 Outlook 或重启 Outlook(如果已打开)。

  5. 执行操作以启动要为其开发的事件,例如创建新邮件以启动 OnNewMessageCompose 事件或报告垃圾邮件。 应显示“调试基于事件的处理程序”对话框。 请勿与对话交互。

    Windows 中的“调试基于事件的处理程序”对话框。

配置Visual Studio Code

使用 Yeoman 生成器创建

  1. 返回命令行窗口,运行以下命令以在 Visual Studio Code 中打开外接程序项目。

    code .
    
  2. 在 Visual Studio Code 中,打开 ./.vscode/launch.json 文件,并将以下摘录添加到配置列表。 保存所做的更改。

    {
      "name": "Direct Debugging",
      "type": "node",
      "request": "attach",
      "port": 9223,
      "timeout": 600000,
      "trace": true
    }
    

其他

  1. 在桌面文件夹) 中创建名为“调试 (”的新文件夹。

  2. 打开 Visual Studio Code。

  3. 转到 “文件>打开文件夹”,导航到刚刚创建的文件夹,然后选择“ 选择文件夹”。

  4. 在“活动栏”上,选择“ 运行和调试 ” (Ctrl+Shift+D) 。

    活动栏上的“运行和调试”图标。

  5. 选择 “创建launch.json文件 ”链接。

    位于“运行和调试”选项下的链接,用于在 Visual Studio Code 中创建launch.json文件。

  6. “选择环境” 下拉列表中,选择“ 边缘:启动 ”以创建launch.json文件。

  7. 将以下摘录添加到配置列表。 保存所做的更改。

    {
      "name": "Direct Debugging",
      "type": "node",
      "request": "attach",
      "port": 9223,
      "timeout": 600000,
      "trace": true
    }
    

附加调试器

加载项 的bundle.js 文件包含加载项的 JavaScript 代码。 它在打开 Outlook on Windows 时创建。 Outlook 启动时,每个已安装加载项的 bundle.js 文件将缓存在计算机的 Wef 文件夹中。

  1. 若要查找加载项的bundle.js 文件,请导航到 文件资源管理器 中的以下文件夹。 使用适用的 Outlook 和外接程序信息替换中 [] 附带的文本。

    %LOCALAPPDATA%\Microsoft\Office\16.0\Wef\{[Outlook profile GUID]}\[Outlook mail account encoding]\Javascript\[Add-in ID]_[Add-in Version]_[locale]
    

    提示

    如果 bundle.js 文件未显示在 Wef 文件夹中,请尝试以下操作:

  2. Visual Studio Code 中打开bundle.js。

  3. 在希望调试器停止 的bundle.js 中放置断点。

  4. “调试” 下拉列表中,选择“ 直接调试”,然后选择“ 开始调试” 图标。

    从“Visual Studio Code调试”下拉列表中的配置选项中选择的“直接调试”选项。

运行调试器

  1. 确认调试器已附加后,返回到 Outlook,并在“ 调试基于事件的处理程序 ”对话框中,选择“ 确定 ”。

  2. 现在可以命中Visual Studio Code中的断点,从而调试基于事件的激活或垃圾邮件报告代码。

停止调试器

若要停止调试当前 Outlook on Windows 会话的其余部分,请在“ 调试基于事件的处理程序 ”对话框中,选择“ 取消”。 若要重新启用调试,请重启 Outlook。

若要防止弹出 “基于调试事件的处理程序 ”对话框并停止对后续 Outlook 会话的调试,请删除关联的注册表项, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer\[Add-in ID]\UseDirectDebugger或将其值设置为 0

另请参阅