在文档级项目中进行调试

更新:2010 年 9 月

可以使用与用于其他项目相同的 Visual Studio 工具对 Microsoft Office Word 和 Microsoft Office Excel 的文档级项目进行调试。 当以“调试”模式运行项目时,Visual Studio 将启动 Word 或 Excel,同时调试器会附加到与 Word 或 Excel 运行在同一进程中的所有程序。 有关 Visual Studio 调试工具的更多信息,请参见使用 Visual Studio 进行调试

提示

在进行生成和调试之前,请关闭所有打开的 Word 或 Excel 实例以避免产生冲突。

**适用于:**本主题中的信息适用于以下应用程序的文档级项目:Excel 2007 和 Excel 2010;Word 2007 和 Word 2010。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

链接到视频 有关相关的视频演示,请参见 How Do I: Debug a VSTO Application?(如何实现:调试 VSTO 应用程序)。

F10 和 F11 行为

开始调试 Office 项目时,F10 和 F11 与您开始调试其他 Visual Basic 或 C# 项目时的行为不同。 在 Visual Basic 或 C# 项目中,调试器将在主函数的位置停止;但在 Office 项目中,Visual Studio 不会对 Office 应用程序的主函数进行控制。 不过,在调试过程中,F10 和 F11 确实与在 Visual Basic 和 C# 项目中具有相同的行为。 有关更多信息,请参见Debugging Shortcut Keys, Brief Scheme

停止调试器

当开始调试文档或工作簿时,该文档或工作簿将在新的 Word 或 Excel 进程中打开。 当停止调试器时,调试器将无条件终止 Word 或 Excel 进程,或分离该进程(如果您已将调试器设置为分离的话)。 如果被终止的 Word 或 Excel 进程中打开了其他文档或工作簿,则它们也将在无警告的情况下关闭,所有未保存的更改都会丢失。 其中可能包括在调试器运行期间打开的所有文档或工作簿。

通常,在停止调试器之前,最好与进程分离,以便能正常退出 Word 和 Excel。 如果您在停止调试器后仍然使用打开的文档或工作表,则也可以先将调试器与进程分离。 有关与进程分离的更多信息,请参见如何:分离所有进程

在频繁的调试会话过程中,反复停止调试器和造成 Word 突然关闭可能会破坏 Normal 模板。 如果发生这种情况,您可以删除被破坏的 Normal 模板,它将在您下一次打开 Word 时自动重新创建。 但是,存储在 Normal 模板中的所有宏都不会重新创建。

Word 在 Visual Studio 中打开时将锁定 Normal 模板

Word 在 Visual Studio 中打开时将锁定默认的 Normal 模板。 当您运行解决方案进行调试时,Word 的一个副本在另一个进程中打开。 如果对打开的 Word 副本进行应用程序级自定义(例如修改工具栏或菜单),您将不能保存这些更改,原因是 Normal 模板已被 Visual Studio 中打开的进程锁定。

在运行时,Word 会在单个进程中为各个文档打开单独的实例,因此不大可能发生下面的情况:一个打开的文档锁定 Normal 模板并阻止应用程序级的更改。

有关更多信息,请参见知识库文章“PRB:将 Word 用作自动化服务器时提示保存 Normal.dot”,网址:https://support.microsoft.com/default.aspx?scid=kb;zh-cn;285885

调试缓存的数据集

每次生成项目时,都会清空并重新创建数据集。 如果您想要调试缓存的数据集,必须在 Visual Studio 之外打开文档并将它附加到调试器。

调试基于 Word 97-2003 文档 (*.doc) 格式的 Word 文档

若要调试基于 Word 97-2003 文档 (*.doc) 格式的 Word 文档项目,您必须将项目文件夹添加到受信任文件夹列表。 有关如何执行该操作的更多信息,请参见向文档授予信任

源代码管理

在源代码管理下,调试属性不在多个用户间共享。 Visual Basic 和 C# 项目将调试属性存储在特定于用户的文件(<项目名>.vbproj.user 或 <项目名>.csproj.user)中,并且此文件不受源代码管理。 如果有多人正在调试,则每个人都必须手动输入调试属性。

命令行参数

如果**“调试”属性页上的“启动操作”设置为“启动项目”,则 Visual Studio 不会在调试项目时使用命令行参数,即使已指定命令行参数作为启动选项。 如果要在启动调试时使用命令行参数,必须选择“启动操作”而不是“启动项目”**。

使用事件查看器对安装错误进行疑难解答

Visual Studio Tools for Office Runtime 针对安装或卸载 Office 解决方案时引发的所有异常,将消息写入 Windows 中的事件查看器。 可以使用这些消息来解决安装和部署问题。 有关更多信息,请参见 Office 解决方案的事件日志

使用日志文件和错误消息对启动错误进行疑难解答

Visual Studio Tools for Office Runtime 可将启动过程中发生的所有错误写入日志文件中,或者在消息框中显示每个错误。 默认情况下,这些选项是禁用的。 可以通过创建环境变量来启用这些选项。

若要在消息框中显示每个错误,请创建一个名为 VSTO_SUPPRESSDISPLAYALERTS 的环境变量,并将其设置为 0(零)。 可以通过删除该环境变量或将其设置为 1(一)来取消显示消息。

若要将错误写入日志文件,请创建一个名为 VSTO_LOGALERTS 的环境变量,并将其设置为 1(一)。 Visual Studio Tools for Office Runtime 会在包含与自定义项关联的文档或工作簿的文件夹中创建日志文件;如果该操作失败,则在本地 %TEMP% 文件夹中创建日志文件。 日志文件的名称为 文档名称.扩展名.log,例如 ExcelWorkbook1.xlsx.log。 若要停止记录错误,请删除该环境变量或将其设置为 0(零)。

请参见

任务

如何:处理 Office 项目中的错误

概念

Office 解决方案生成过程概述

其他资源

使用 Visual Studio 进行调试

部署 Office 解决方案

设计和创建 Office 解决方案

生成和调试 Office 解决方案

修订记录

日期

修订记录

原因

2010 年 9 月

增加了有关使用事件查看器对安装错误进行疑难解答的部分。

信息补充。

2010 年 5 月

更正了有关日志记录错误的一些详细信息。

内容 Bug 修复