Office 解决方案生成过程概述

更新:2007 年 11 月

在 Visual Studio 中生成 Microsoft Office 解决方案与生成其他应用程序非常类似。但是,需要考虑特定于 Office 解决方案的几个因素。

有关如何生成应用程序的一般信息,请参见在 Visual Studio 中生成

2007 System 项目的项目输出

2007 版本项目的输出位置为 项目名\bin\release 或 项目名\bin\debug。不能将项目生成到部署目录中。

文档级项目

生成文档级项目时,项目输出中包含以下项:

应用程序级项目

生成应用程序级项目时,项目输出中包含以下项:

应用程序级项目的生成过程还会在开发计算机上创建加载外接程序所需的一组注册表项。有关更多信息,请参见 应用程序级外接程序的注册表项

如果生成包含窗体区域的 Outlook 外接程序项目,生成过程会向注册表中添加以下附加信息:

  • 与一个或多个窗体区域关联的每个邮件类的注册表项。

  • 每个窗体区域的注册表项,以及表示 Outlook 外接程序名称的关联值。

Outlook 需要此信息来加载窗体区域。

2003 System 项目的项目输出

2003 版本项目的输出位置为 项目名\bin\release 或 项目名\bin\debug。不能将项目生成到部署目录中。

文档级项目

生成文档级项目时,项目输出中包含以下项:

  • 项目文档的一个副本。

  • 项目程序集以及“复制本地”属性设置为 true 的所有引用的程序集。

  • 应用程序清单(嵌入在文档中)。有关更多信息,请参见 Office 解决方案中的应用程序和部署清单

  • 程序数据库 (PDB) 文件。

对于 Excel 解决方案,您不能更改输出路径或工作目录。如果将“项目设计器”的“调试”窗格中的工作目录选项设置为不同的位置,在文档打开时,Excel 将在运行时将其更改回默认位置。但对于 Word 解决方案,通常您可以更改输出路径。

应用程序级项目

生成应用程序级项目时,项目输出中包含以下项:

应用程序级项目的生成过程还会在开发计算机上创建加载外接程序所需的一组注册表项。有关更多信息,请参见 应用程序级外接程序的注册表项

引用的程序集

可以从 Visual Studio Tools for Office 项目中引用程序集(包括类库项目)。每个引用的程序集都具有一个名为“复制本地”的属性。“复制本地”指示是否要将程序集复制到输出目录中。默认情况下,此选项设置为 true。“复制本地”设置为 true 的每个引用的程序集都被复制到输出目录中。

生成过程期间的安全

Visual Studio 会自动配置开发计算机上的安全设置,以便在生成过程中向解决方案授予信任。这样,解决方案将能在您对其进行调试时运行。对于 Office 的不同版本,在项目中处理安全配置的方式有所不同。

2007 System 项目

对于 2007 Microsoft Office system 项目,Visual Studio Tools for Office 使用包含列表和证书来验证发布者。Visual Studio 会自动创建一个临时证书来标识 Office 解决方案,并向包含列表中添加一项以信任该证书。

有关更多信息,请参见 Office 解决方案中的安全性 (2007 System)

2003 System 项目

对于 Microsoft Office 2003 项目,Visual Studio Tools for Office 包括一个名为“信任程序集位置”的布尔值属性。此属性出现在 Visual Studio 的“属性”窗口中。默认情况下,此属性设置为 True。如果该属性设置为 True,在生成项目时,Visual Studio 将使用 URL 作为证据来为项目程序集授予完全信任。

同时,还将为输出文件夹中的被引用程序集和附属程序集授予完全信任权限。在“用户”级别为本地计算机上的程序集授予信任。因此,对于那些项目,您不需要具有管理凭据。如果在一个不同的位置重新生成项目,针对旧位置的完全信任权限将被移除。有关安全性的更多信息,请参见运行 Office 解决方案的安全要求 (2003 System)

如果在每次生成时检查位置并授予信任,则可以移动和共享项目,而不必每次手动更改计算机的安全配置。不过,您必须使用 Visual Studio 提供的工具来更改项目位置。如果使用外部工具(例如 Windows 资源管理器),Visual Studio 将不能更新权限。

网络项目

如果程序集或文档位于一个网络共享位置,则本地(“用户”级别)安全策略更新不足以允许解决方案运行。要使解决方案运行,管理员必须先在“计算机”级别向网络共享位置上的程序集和文档授予完全信任。有关如何设置安全策略的更多信息,请参见如何:将权限授予文件夹和程序集 (2003 System)

对于 2007 system 文档级项目,还必须将文档的完全限定位置添加到 Office 受信任文件夹列表。有关更多信息,请参见向文档授予信任 (2007 System)

测试文档级自定义项

按 F5 来生成并调试解决方案。如果要通过生成文档然后在 Visual Studio 之外打开文档(不进行调试)的方法来测试 Word 2003 或 Word 2007 解决方案,应在打开文档之前关闭项目。当您在 Visual Studio 中打开一个 Word 文档时,将在 Word 进程上设置一个标志,以使它不运行自定义项。如果在 Visual Studio 之外通过在 Windows 资源管理器中双击一个自定义的 Word 文档的方法来打开文件,此标志也可以防止该文档运行自定义项。双击文件打开它时,Word 将在与任何当前运行的文档相同的进程中打开该文档。由于 Visual Studio 中已经打开了一个文档,新的文档将在相同的进程中打开,并接收到不运行自定义项的标志。

测试应用程序级外接程序

按 F5 来生成并调试解决方案。如果通过发布和安装解决方案来测试应用程序级外接程序,在重新发布或进行更多代码更改并通过按 F5 重新测试之前,请卸载解决方案。安装发布的解决方案时,会将外接程序的程序集安装到 ClickOnce 缓存中。安装程序还会创建注册表项,以便 Office 应用程序可以找到并加载程序集。由于重新生成解决方案的过程会更新注册表项,因此,必须在发布或运行第二个版本之前卸载第一个版本。

使用“清理”命令

若要从开发计算机移除生成的项目文件,可以使用 Visual Studio 中的“生成”菜单上的“清理”命令。“清理”命令可删除生成输出位置上的所有文件。对于应用程序级项目,“清理”命令还可移除生成过程创建的注册表项。

h2c9cdc0.alert_note(zh-cn,VS.90).gif说明:

“清理”命令不移除生成过程授予给解决方案程序集的权限。有关如何移除权限的信息,请参见如何:从文件夹和程序集中移除权限 (2003 System)

将目标平台更改为 x64

默认情况下,目标平台是“任何 CPU”[Any CPU]。如果将目标平台设置为 x64,则您可以编译项目,但解决方案将不会运行。x64 目标平台要求解决方案在 64 位进程中运行。Office 在 32 位进程中运行。因此,Office 将无法加载解决方案。

请参见

任务

如何:生成 Office 解决方案

概念

在文档级项目中进行调试

其他资源

生成和调试 Office 解决方案

在 Visual Studio 中生成