调试基于事件的或垃圾邮件报告的 Outlook 加载项
本文讨论在外接程序中实现 基于事件的激活 或 集成垃圾邮件报告 (预览) 时,在代码中启用和设置断点的关键调试阶段。 在继续之前,建议查看 故障排除指南 ,了解如何解决开发错误的其他步骤。
若要开始调试,请选择适用客户端的选项卡。
例如,如果使用 Office 外接程序的 Yeoman 生成器 创建外接程序项目 (,则通过完成 基于事件的激活演练) ,请按照本文中的 使用 Yeoman 生成器创建 选项进行操作。 否则,请按照 其他 步骤操作。 Visual Studio Code应至少为版本 1.56.1。
标记加载项进行调试并设置调试器端口
从清单中获取加载项的 ID。
- XML 清单:使用 Id> 元素的值<,即根 <OfficeApp> 元素的子元素。
- 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
事件或报告垃圾邮件。 应显示“调试基于事件的处理程序”对话框。 请勿与对话交互。
配置Visual Studio Code
使用 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]
在 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
。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈