调试基于事件的或垃圾邮件报告的 Outlook 加载项
本文讨论在外接程序中实现 基于事件的激活 或 集成垃圾邮件报告 时,在代码中启用和设置断点的关键调试阶段。 在继续之前,建议查看 故障排除指南 ,了解如何解决开发错误的其他步骤。
若要开始调试,请选择适用客户端的选项卡。
例如,如果使用 Office 外接程序的 Yeoman 生成器 创建外接程序项目 (,则通过完成 基于事件的激活演练) ,请按照本文中的 使用 Yeoman 生成器创建 选项进行操作。 否则,请按照 其他 步骤操作。 Visual Studio Code应至少为版本 1.56.1。
标记加载项进行调试并设置调试器端口
从清单中获取加载项的 ID。
-
仅外接程序清单:使用根 <OfficeApp> 元素的 <Id> 元素子元素的值。
-
Microsoft 365 的统一清单:使用根匿名
{ ... }
对象的“id”属性的值。
在 中创建名为 UseDirectDebugger
的HKEY_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\
尚不存在 (文件夹) 键,请完成以下步骤来创建它。
- 右键单击 (或选择并按住) WEF 密钥 (文件夹) ,然后选择 “新建>密钥”。
- 将新密钥命名为 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
。
在注册表项 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer\[Add-in ID]
中,其中 [Add-in ID]
是清单中的外接程序 ID,使用以下配置创建一个新 DWORD
值。
-
值名称:
DebuggerPort
-
值数据 (十六进制) :
00002407
这会将调试器端口设置为 9223
。
启动 Outlook 或重启 Outlook(如果已打开)。
执行操作以启动要为其开发的事件,例如创建新邮件以启动 OnNewMessageCompose
事件或报告垃圾邮件。 应显示 “调试基于事件的处理程序 ”对话框。
请勿与对话交互。
使用 Yeoman 生成器创建
返回命令行窗口,运行以下命令以在 Visual Studio Code 中打开外接程序项目。
code .
在 Visual Studio Code 中,打开 ./.vscode/launch.json 文件,并将以下摘录添加到配置列表。 保存所做的更改。
{
"name": "Direct Debugging",
"type": "node",
"request": "attach",
"port": 9223,
"timeout": 600000,
"trace": true
}
其他
在桌面文件夹) 中创建名为“调试 (”的新文件夹。
打开 Visual Studio Code。
转到 “文件>打开文件夹”,导航到刚刚创建的文件夹,然后选择“ 选择文件夹”。
在“活动栏”上,选择“ 运行和调试 ” (Ctrl+Shift+D) 。
选择 “创建launch.json文件 ”链接。
在 “选择环境” 下拉列表中,选择“ 边缘:启动 ”以创建launch.json文件。
将以下摘录添加到配置列表。 保存所做的更改。
{
"name": "Direct Debugging",
"type": "node",
"request": "attach",
"port": 9223,
"timeout": 600000,
"trace": true
}
附加调试器
加载项 的bundle.js 文件包含加载项的 JavaScript 代码。 它在打开经典 Outlook on Windows 时创建。 Outlook 启动时,每个已安装加载项的 bundle.js 文件将缓存在计算机的 Wef 文件夹中。
若要查找加载项的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 文件夹中,请尝试以下操作:
- 如果加载项已安装或旁加载,请重启 Outlook。
- 从 Outlook 中删除加载项,然后再次旁加载它。
在 Visual Studio Code 中打开bundle.js。
在希望调试器停止 的bundle.js 中放置断点。
在 “调试” 下拉列表中,选择“ 直接调试”,然后选择“ 开始调试” 图标。
运行调试器
确认调试器已附加后,返回到 Outlook,并在“ 调试基于事件的处理程序 ”对话框中,选择“ 确定 ”。
现在可以命中Visual Studio Code中的断点,从而调试基于事件的激活或垃圾邮件报告代码。
停止调试器
若要停止调试当前 Outlook on Windows 会话的其余部分,请在“ 调试基于事件的处理程序 ”对话框中,选择“ 取消”。 若要重新启用调试,请重启 Outlook。
若要防止弹出 “基于调试事件的处理程序 ”对话框并停止对后续 Outlook 会话的调试,请删除关联的注册表项, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer\[Add-in ID]\UseDirectDebugger
或将其值设置为 0
。
停止本地服务器
如果要停止本地 Web 服务器并卸载加载项,请按照适用的说明操作:
在 Outlook on Mac 中运行的基于事件的加载项使用浏览器运行时。 因此,可以使用 Safari Web 检查器调试加载项。
- 若要在 Outlook 中使用 Safari Web 检查器,请按照 在 Mac 上使用 Safari Web Inspector 调试中的步骤操作。
- 打开 Outlook,然后 旁加载加载项。
- 执行将启动加载项处理的事件的操作。 例如,创建一条新消息来启动事件
OnNewMessageCompose
。 这会打开一个空的开发人员窗口。 加载项的名称将显示在窗口的标题栏中。
- 右键单击 (或选择并按住开发人员窗口中的任意位置) ,然后选择“ 检查元素”。 这将打开检查器,你可以在其中设置断点和调试加载项。
另请参阅