如何:将托管代码扩展附加到文档 (2003 System)

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

Microsoft Office 版本

  • Microsoft Office 2003

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

您可以将 Visual Studio Tools for Office 解决方案程序集附加到现有的 Microsoft Office Word 2003 文档或 Microsoft Office Excel 2003 工作簿。该文档或工作簿可以为 Visual Studio Tools for Office 所支持的任一文件格式。有关更多信息,请参见 文档级自定义项的体系结构

如果将解决方案程序集附加到尚不具有 Visual Studio Tools for Office 自定义项的文档,则 Visual Studio Tools for Office 运行时将自动在文档中创建运行时存储控件。有关更多信息,请参见 运行时存储控件概述

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

如果指定的文档不包含解决方案程序集要求文档具有的控件,则用户打开文档时程序集将无法加载。

将解决方案程序集附加到文档有两种方法:

  • 在文档自身中手动设置自定义文档属性。

  • 通过使用 ServerDocument 类以编程方式附加程序集。

使用自定义文档属性

通过手动设置 _AssemblyName 和 _AssemblyName 自定义文档属性,可以将 Visual Studio Tools for Office 解决方案程序集附加到 Word 或 Excel 文档。有关更多信息,请参见 自定义文档属性概述

以下过程假定您已经部署了解决方案程序集,并且该解决方案使用部署清单。有关更多信息,请参见 部署文档级自定义项 (2003 System)

通过设置自定义文档属性来附加解决方案程序集

  1. 在 Word 或 Excel 中打开文档。

  2. 在“文件”菜单上单击“属性”,然后单击“自定义”选项卡。

  3. 设置 _AssemblyName 属性:

    1. 如果 _AssemblyName 出现在“属性”列表中,请选择 _AssemblyName,并在“值”框中键入星号 (*)。

    2. 如果 _AssemblyName 不在列表中,请在“名称”框中键入 _AssemblyName,在“值”框中键入星号 (*),然后单击“添加”。

  4. 设置 _AssemblyLocation 属性:

    1. 如果 _AssemblyLocation 出现在“属性”列表中,请选择 _AssemblyLocation 并在“值”框中键入部署清单的完整路径。

    2. 如果 _AssemblyLocation 不在列表中,请在“名称”框中键入 _AssemblyLocation,在“值”框中键入部署清单的完整路径,然后单击“添加”。

    部署清单的位置可以是磁盘路径 (C:\deploy\Document1.application)、文件共享 (\\server\Document1.application) 或网站 (https://www.contoso.com/Document1.application)。

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

    自定义文档属性的值可以包含 255 个字符。如果清单路径超过 255 个字符,请创建名为 _AssemblyLocation0 的属性并将此属性设置为路径中的前 255 个字符。然后创建名为 _AssemblyLocation1 的属性并将此属性设置为清单路径中剩余的字符。

  5. 单击“确定”,然后保存并关闭文档。

    下次打开并保存文档时,Visual Studio Tools for Office 运行时会将解决方案程序集附加到文档,并在必要时创建运行时存储控件。Visual Studio Tools for Office 运行时还会将 _AssemblyLocation 自定义文档属性的值设置为运行时存储控件的 GUID。有关更多信息,请参见 运行时存储控件概述

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

    必须在已安装 Visual Studio Tools for Office 运行时的计算机上打开和保存文档。有关更多信息,请参见 如何:安装 Visual Studio Tools for Office 运行库

使用 ServerDocument 类

通过使用 ServerDocument 类的 AddCustomization 方法,可以将 Visual Studio Tools for Office 解决方案程序集附加到 Word 或 Excel 文档。必须将使用 ServerDocument 类的代码放置在新项目中(而非 Visual Studio Tools for Office 解决方案中),例如放置在 Windows 窗体项目中。此外,必须关闭您将程序集附加到的文档,并且该文档必须位于已安装 Word(用于 Word 文档)或 Excel(用于 Excel 工作簿)的计算机上。

以下过程假定您已经部署了解决方案程序集,并且该解决方案使用部署清单。有关更多信息,请参见 部署文档级自定义项 (2003 System)

通过使用 ServerDocument 类将解决方案程序集附加到文档

  1. 创建新的“Windows 窗体”项目。

  2. 将对 Microsoft.VisualStudio.Tools.Applications.Runtime.dll 程序集的引用添加到项目。

  3. 在代码文件的开头处添加 Imports 或 using 语句,引用该运行时。

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. 调用 ServerDocument 类的静态 AddCustomization 方法,并在参数中指定解决方案文档路径、程序集名称和部署清单路径。以下代码假定您将程序集附加到位于文件夹 C:\WordDocument1 中、名为 WordDocument1.doc 的 Word 文档,并且程序集和部署清单位于网络共享 \\deployserver\WordDocument1\。

    Private Sub AddNewCustomization()
    
        Dim fileName As String = "C:\WordDocument1\WordDocument1.doc"
    
        If Not ServerDocument.IsCustomized(fileName) Then
    
            Dim assemblyName As String = "\\deployserver\WordDocument1\WordDocument1.dll"
            Dim manifestPath As String = "\\deployserver\WordDocument1\WordDocument1.application"
            Dim applicationVersion As String = "1.0.0.0"
    
            ServerDocument.AddCustomization( _
                fileName, assemblyName, manifestPath, applicationVersion, False)
    
        Else
            System.Windows.Forms.MessageBox.Show( _
                "The specified document is already customized.")
        End If
    End Sub
    
    private void AddNewCustomization()
    {
        string fileName = @"C:\WordDocument1\WordDocument1.doc";
    
        if (!ServerDocument.IsCustomized(fileName))
        {
            string assemblyName = @"\\deployserver\WordDocument1\WordDocument1.dll";
            string manifestPath = @"\\deployserver\WordDocument1\WordDocument1.application";
            string applicationVersion = "1.0.0.0";
    
            ServerDocument.AddCustomization(
                fileName, assemblyName, manifestPath, applicationVersion, false);
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(
                "The specified document is already customized.");
        }
    }
    

    Visual Studio Tools for Office 运行时将解决方案程序集附加到文档,并在必要时创建运行时存储控件。有关更多信息,请参见 运行时存储控件概述

请参见

任务

如何:编写使用两个版本的 ServerDocument 类的代码

如何:移除文档中的托管代码扩展 (2003 System)

如何:移除文档中的托管代码扩展 (2007 System)

如何:将托管代码扩展附加到文档 (2007 System)

概念

使用 ServerDocument 类管理服务器上的文档

Office 解决方案中的应用程序和部署清单

运行时存储控件概述