部署 Office 2007 .NET 3.5 Project 和 Office 2010 .NET 4.0 Project

Office 可视操作方法

**摘要:**利用 Visual Studio 2010,您可以为 Microsoft Office 2007 system 和 Microsoft Office 2010 生成面向 .NET Framework 3.5 和 .NET Framework 4 的解决方案。安装这些解决方案的要求随 Office 的版本和解决方案面向的 .NET Framework 的不同而不同。

上次修改时间: 2015年3月9日

适用范围: Excel 2010 | Office 2007 | Office 2010 | Open XML | PowerPoint 2010 | VBA | Visual Studio | Word 2010

**发布时间:**2010 年 8 月

供稿人:Robert Green,MVP,MCW Technologies, LLC(该链接可能指向英文页面)

概述

利用 Microsoft Visual Studio 2010,您可以为 Microsoft Office 2007 system 和 Microsoft Office 2010 创建文档级别的自定义项和应用程序级别的加载项。在这两种情况下,您都可以面向 Microsoft .NET Framework 3.5 或 .NET Framework 4。在计算机上测试解决方案之后,您可将其部署到最终用户。无论您使用的 Office 的版本以及面向的 .NET Framework 的版本如何,您都必须确保用户在其计算机上安装了必需的软件。

除了安装适当版本的 .NET Framework 之外,用户还必须安装 Office。此外,用户需要 Visual Studio 2010 Tools for Office Runtime。如果他们使用的是 Microsoft Office 2007 system,则需要 Office 2007 主互操作程序集。如果他们使用的是 Office 2010,则需要针对 .NET Framework 3.5 或 .NET Framework 4 的 Office 扩展。

编码

按照这些步骤执行操作可查看面向 .NET Framework 3.5 和 .NET Framework 4 的 Microsoft Office 2007 system 和 Office 2010 解决方案。

查看解决方案

本文介绍了四个版本的 SmartTagAddIn 项目。该项目是一个 Word 应用程序级别加载项,它提供了一个识别华氏温度或摄氏温度的自定义智能标记,并提供了用于转换到其他刻度的选项,如图 1 和图 2 所示。利用图 3 和图 4 中所示的功能区自定义项,用户可输入一个温度值,设置其度数,然后将该温度插入工作簿中。您可能会觉得加载项的内部代码很有趣,但这并不是本文的重点。相反,本文侧重于如何部署 Office 解决方案。

图 1. Word 2007 智能标记有助于将温度从一个度数转换为另一个度数

用于转换温度的 Word 2007 智能标记

图 2. Word 2010 智能标记有助于将温度从一个度数转换为另一个度数

用于转换温度的 Word 2010 智能标记

图 3. Word 2007 功能区自定义项允许用户插入格式化的温度值

Word 2007 功能区自定义

图 4. Word 2010 功能区自定义项允许用户插入格式化的温度值

Word 2010 功能区自定义

版本 1:面向 .NET Framework 3.5 的 Office 2007 解决方案

  1. 在 Visual Studio 2010 中,加载示例项目 SmartTagAddIn_Office2007_NET35.sln。

  2. 如果使用的是 Visual Basic,请单击"解决方案资源管理器"中的"全部显示"按钮。

  3. 展开"解决方案资源管理器"中的"引用"节点。

    Microsoft.Office.Interop.SmartTag 和 Microsoft.Office.Interop.Word 是主互操作程序集 (PIA)。利用 PIA,托管代码可与 Microsoft Office 应用程序的基于 COM 的对象模型进行交互。这些 PIA 必须存在于最终用户的计算机中以运行面向 .NET Framework 3.5 的解决方案。

  4. 在"项目"菜单上,选择"SmartTagAddIn_Office2007_NET35 属性"以显示"项目设计器"。

  5. 选择"发布"选项卡。

  6. 单击"系统必备"。请注意,Microsoft Office 2007 主互操作程序集和 Microsoft Visual Studio 2010 Tools for Office Runtime(x86 和 x64)已选中(见图 5)。

    图 5. 运行该解决方案需要 Office 2007 PIA 和 VSTO 2010 运行时


    Office 2007 PIA 和 VSTO 运行时

    如果用户计算机上已安装 .NET Framework 3.5,则完全安装 Office 2007 将会安装 PIA,以使其存在。如果 PIA 不存在,则解决方案的安装程序例程将下载并安装 PIA。

    显然,安装 Office 2007 不会安装 Visual Studio Tools for Office 2010 Runtime,但却必须安装它。如果它不存在,则此解决方案的安装程序例程将下载并安装它。

  7. 单击"取消"以关闭"系统必备"对话框。

版本 2:面向 .NET Framework 4 的 Office 2007 解决方案

  1. 在 Visual Studio 2010 中,加载示例项目 SmartTagAddIn_Office2007_NET4.sln。

  2. 如果使用的是 Visual Basic,请单击"解决方案资源管理器"中的"全部显示"按钮。

  3. 展开"解决方案资源管理器"中的"引用"节点。

  4. 选择 Microsoft.Office.Interop.SmartTag。

    .NET Framework 4 中新增了一项用于将 COM 类型的类型信息直接嵌入托管程序集中的功能。请注意,只会嵌入托管程序集所使用的类型和成员。

    您可从图 6 中看到,SmartTag PIA 的"嵌入互操作类型"属性已设置为"True"。类型信息将嵌入 SmartTagAddIn_Office2007_NET4 程序集中,因此,用户无需在其计算机上安装 PIA。

    图 6. SmartTag 的 COM 类型将嵌入 Word 加载项程序集中


    智能标记的 COMN 类型

  5. 选择 Microsoft.Office.Interop.Word。此 PIA 的"嵌入互操作类型"将设置为"True"。

  6. 在"项目"菜单上,选择"SmartTagAddIn_Office2007_NET4 属性"以显示"项目设计器"。

  7. 选择"发布"选项卡。

  8. 单击"系统必备"。请注意,Microsoft Office 2007 主互操作程序集未选中(见图 7)。Microsoft Visual Studio 2010 Tools for Office Runtime(x86 和 x64)已选中,并且必须安装它(如果它不存在)。

    图 7. Office 2007 PIA 在面向 .NET Framework 4 的解决方案中不是必备组件


    Office 2007 必备组件

  9. 另请注意,已选中 Microsoft .NET Framework 4 Client Profile(x86 和 x64)。

    .NET Framework 4 Client Profile 是 .NET Framework 4 的子集,它已针对客户端应用程序进行了优化。它提供了针对大多数客户端应用程序的功能,其中包括 Windows Presentation Foundation (WPF)、Windows Forms、Windows Communication Foundation (WCF) 和 ClickOnce 功能。这使得面向 .NET Framework 4 Client Profile 的应用程序的部署速度更快且安装包更小。

  10. 单击"取消"以关闭"系统必备"对话框。

  11. 如果您使用的是 Visual Basic,请选择"项目设计器"的"编译"选项卡。单击"高级编译选项"。在"高级编译器设置"对话框中,请注意,已在"目标框架"下拉列表中选中 .NET Framework 4 Client Profile。单击"取消"关闭"高级编译器设置"对话框。

  12. 如果您使用的是 Visual C#,请选择"项目设计器"的"应用程序"选项卡。请注意,已在"目标框架"下拉列表中选中 .NET Framework 4 Client Profile。

    默认情况下,在创建面向 .NET Framework 4 的 Office 解决方案时,Visual Studio 会面向 .NET Framework 4 Client Profile。如果您使用的 .NET Framework 的部件未包含在 Client Profile 中,则可从"目标框架"下拉列表中选择 .NET Framework 4。

版本 3:面向 .NET Framework 3.5 的 Office 2010 解决方案

  1. 在 Visual Studio 2010 中,加载示例项目 SmartTagAddIn_Office2010_NET35.sln。

  2. 如果使用的是 Visual Basic,请单击"解决方案资源管理器"中的"全部显示"按钮。

  3. 展开"解决方案资源管理器"中的"引用"节点。

    Microsoft.Office.Interop.SmartTag 和 Microsoft.Office.Interop.Word 是您在前面两个项目中看到的 Office 2010 版本的主互操作程序集。

  4. 在"项目"菜单上,选择"SmartTagAddIn_Office2010_NET35 属性"以显示"项目设计器"。

  5. 选择"发布"选项卡。

  6. 单击"系统必备"。请注意,当前不存在 Microsoft Office 2010 主互操作程序集项。另请注意,Microsoft Visual Studio 2010 Tools for Office Runtime(x86 和 x64)未选中(见图 8)。

    图 8. 无需将 VSTO 2010 运行时作为解决方案的系统必备列出


    Office 2010 必备组件

    如果用户计算机上已有 .NET Framework 3.5,则安装 Office 2010 将会安装 PIA,以使其存在。如果 PIA 不存在,则此解决方案的安装程序例程必须下载并安装它。在推出 Office 2010 后,便可从 Microsoft 网站下载 PIA。如果您希望安装程序例程下载并安装 PIA,则必须将其添加到"系统必备"对话框的列表中。为此,您可以创建一个 bootstrapper 程序包。有关详细信息,请参阅Creating Bootstrapper Packages

    当用户在已安装 .NET Framework 3.5 的计算机上安装 Office 2010 时,还会安装 Visual Studio 2010 Tools for Office Runtime 以及针对 .NET Framework 3.5 的 Office 扩展。这些扩展是运行面向 3.5 版的 .NET Framework 的自定义项所需的组件。

  7. 单击"取消"以关闭"系统必备"对话框。

版本 4:面向 .NET Framework 4 的 Office 2010 解决方案

  1. 在 Visual Studio 2010 中,加载示例项目 SmartTagAddIn_Office2010_NET4.sln。

  2. 如果使用的是 Visual Basic,请单击"解决方案资源管理器"中的"全部显示"按钮。

  3. 展开"解决方案资源管理器"中的"引用"节点。

  4. 选择 Microsoft.Office.Interop.SmartTag。此 PIA 的"嵌入互操作类型"属性将设置为"True"。

  5. 选择 Microsoft.Office.Interop.Word。此 PIA 的"嵌入互操作类型"将设置为"True"。

  6. 在"项目"菜单上,选择"SmartTagAddIn_Office2010_NET4"属性以显示"项目设计器"。

  7. 选择"发布"选项卡。

  8. 单击"系统必备"。另请注意,已选中 Microsoft .NET Framework 4 Client Profile(x86 和 x64)。如您之前所见,当您创建面向 .NET Framework 4 的 Office 解决方案时,默认情况下,Visual Studio 将面向 .NET Framework 4 Client Profile。

  9. 请注意,当前不存在 Microsoft Office 2010 主互操作程序集项。另请注意,Microsoft Visual Studio 2010 Tools for Office Runtime(x86 和 x64)未选中(见图 9)。

    图 9. 默认情况下,VSTO 2010 运行时不是该解决方案的系统必备


    VSTO 2010 运行时必备组件

    如前所示,默认情况下,您无需在用户计算机上为面向 .NET Framework 4 的解决方案安装 PIA。类型和成员将嵌入此解决方案的托管程序集中。

    在已有 .NET Framework 4 的计算机上安装 Office 2010 时,还将安装 Visual Studio 2010 Tools for Office Runtime。但默认情况下,Office 2010 不包含针对 .NET Framework 4 的 Office 扩展。这些扩展是运行面向版本 4 的 .NET Framework 的自定义项所需的组件。因此,您应选中"系统必备"对话框中的 Microsoft Visual Studio 2010 Tools for Office Runtime(x86 和 x64)。这将促使安装程序例程重新安装 Visual Studio 运行时并安装 Office 扩展。

  10. 单击"取消"以关闭"系统必备"对话框。

  11. 如果您使用的是 Visual Basic,请选择"项目设计器"的"编译"选项卡。单击"高级编译选项"。在"高级编译器设置"对话框中,请注意,已在"目标框架"下拉列表中选中 .NET Framework 4 Client Profile。单击"取消"关闭"高级编译器设置"对话框。

  12. 如果您使用的是 Visual C#,请选择"项目设计器"的"应用程序"选项卡。请注意,已在"目标框架"下拉列表中选中 .NET Framework 4 Client Profile。

发布和安装解决方案

  1. 在 Visual Studio 的"生成"菜单上,选择"清理解决方案"。

  2. 选择"项目设计器"中的"发布"选项卡。

    图 10. 使用"项目设计器"的"发布"选项卡来发布 Office 解决方案


    发布解决方案

  3. 在"发布位置文件夹"文本框中,输入要发布应用程序的位置。

  4. 单击"立即发布"以发布解决方案。

  5. 在 Windows 资源管理器中,导航到发布文件夹。

    图 11. 发布文件夹的内容


    发布文件夹的内容

    发布文件夹不仅包含文档和安装程序,还包含部署清单 (SmartTagAddIn_Office2010_NET4.vsto)。这将介绍应用程序的部署方式。其中包含应用程序清单的位置和客户端应运行的应用程序的版本。

  6. 双击 Application Files 文件夹。其中包含一个 SmartTagAddIn_Office2010_NET4_1_0_0_0 文件夹。该文件夹中包含安装 1.0.0.0 版的解决方案所需的文件。

  7. 双击 SmartTagAddIn_Office2010_NET4_1_0_0_0 文件夹。

    图 12. SmartTagAddIn_Office2010_NET4_1_0_0_0 文件夹的内容


    文件夹内容

    此文件夹包含自定义项程序集 (SmartTagAddIn_Office2010_NET4.dll.deploy) 以及包括 ThisAddIn 和 Ribbon 类的基类的程序集 (Microsoft.Office.Tools.Common.v4.0.Utilities.dll.deploy)。它还包含部署清单 (SmartTagAddIn_Office2010_NET4.vsto) 和应用程序清单 (SmartTagAddIn_Office2010_NET4.dll.manifest)。

读取

在使用 Visual Studio 生成 Office 解决方案后且在将其部署到最终用户之前,您必须确保最终用户的计算机上安装了所需的软件。幸运的是,必备组件的列表并不长。该列表包含 .NET Framework、Visual Studio 2010 Tools for Office Runtime 以及主互操作程序集或针对 .NET Framework 的 Office 扩展,具体取决于使用的 Office 版本。您可使用"系统必备"对话框标识上述各项。

观看

观看视频

观看视频(该链接可能指向英文页面)

单击以获取代码

获取代码(该链接可能指向英文页面)

视频时长:10:32

文件大小:13.9 MB WMV

浏览

关于作者

Robert Green 是一位开发人员、作者和培训师。他是 MCW Technologies(该链接可能指向英文页面) 的高级顾问。Robert 既是 Visual Studio Tools for the Office system MVP,又是面向 Microsoft Visual Basic、Microsoft Visual C#、LINQ 和 Microsoft Windows Workflow Foundation 的 AppDev 课件的共同制作者。在加入 MCW 之前,Robert 是 Microsoft 的产品经理和程序经理。