在文档级项目中进行调试

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

Microsoft Office 版本

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

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

h1e6ht9c.alert_note(zh-cn,VS.90).gif提示:

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

F10 和 F11 行为

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

停止调试器

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

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

如果您希望停止调试器但仍然使用打开的文档或工作表,需要首先将调试器与进程分离,然后再停止该调试器。有关更多信息,请参见如何:分离所有进程

Word 在 Visual Studio 中打开时将锁定 Normal.dot

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

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

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

调试缓存的数据集

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

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

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

源代码管理

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

命令行参数

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

使用日志文件和错误信息排除故障

Visual Studio Tools for Office 可将所有错误写入日志文件。默认情况下,此选项对 Word 和 Excel 项目是关闭的。通过添加环境变量 VSTO_LOGALERTS 并将其值设置为 1(一),可以启用此选项。Visual Studio Tools for Office 在创建解决方案文档的输出文件夹中创建日志文件,如果创建操作失败,则在 %TEMP% 文件夹中创建。对于 Word,日志文件的默认名称为 <文档名称>.doc.log,对于 Excel,默认名称为 <文档名称>.xls.log。通过将该变量设置为 0,可以停止记录错误。

默认情况下,Visual Studio Tools for Office 在消息框中显示 Word 和 Excel 项目的每一个错误。通过添加环境变量 VSTO_SUPPRESSDISPLAYALERTS 并将其值设置为 1,可以使 Visual Studio Tools for Office 停止显示错误信息。若要显示错误信息,请将该变量设置为 0。

有关在 Microsoft Windows XP 中设置环境变量的信息,请参见“如何管理 Windows XP 中的环境变量”(https://support.microsoft.com/default.aspx?scid=kb;zh-cn;310519)。

请参见

任务

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

概念

部署 Office 解决方案 (2003 System)

部署 Office 解决方案 (2007 System)

在 Visual Studio 中创建 Office 解决方案

Office 解决方案生成过程概述

其他资源

使用 Visual Studio 进行调试

生成和调试 Office 解决方案