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

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

Microsoft Office 版本

  • Microsoft Office 2003

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

对于 Microsoft Office 2003 文档级自定义项中的文档或工作簿,可以通过编程方式移除其中的 Visual Studio Tools for Office 自定义项程序集。随后,用户可以打开文档并查看其中的内容,但文档中不会显示已添加的任何自定义用户界面 (UI),也不会运行您的代码。在移除程序集时,可以选择将缓存的数据保留在文档中,也可以将其移除:

  • 如果要保留缓存的数据,请清除文档中嵌入的应用程序清单。如果缓存的数据以后将由 ASP.NET 页或服务器应用程序读取,您可能希望保留它们。

  • 如果不再需要缓存的数据,请将应用程序清单和缓存的数据都清除。

Visual Studio Tools for Office 运行时包含一个能用于以编程方式执行这些操作的对象模型。

清除嵌入的应用程序清单

使用 ServerDocument 类只能清除嵌入的应用程序清单。您必须将使用 ServerDocument 类的代码放置在新项目中(而非 Visual Studio Tools for Office 解决方案中),例如放置在控制台应用程序或 Windows 窗体项目中。

清除嵌入的应用程序清单

  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 的实例,并传入解决方案文档。调用 AppManifest 属性的 Clear 方法。

    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("C:\Documents\SolutionDocument.doc")
        sd.AppManifest.Clear()
    
    ServerDocument sd = null;
    try 
    {
        sd = new ServerDocument(@"C:\Documents\SolutionDocument.doc");
        sd.AppManifest.Clear();
    
  5. 保存所做的更改并关闭文档。

        sd.Save()
    
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    

清除嵌入的应用程序清单和缓存的数据

可以通过使用以下 RemoveCustomization 方法之一将嵌入的应用程序清单和缓存的数据均从文档中清除:

说明:

Document.RemoveCustomizationWorkbook.RemoveCustomization 方法还可用来从文档中移除运行时存储控件。有关运行时存储控件的更多信息,请参见运行时存储控件概述

从客户端计算机上打开的文档中清除嵌入的应用程序清单和缓存的数据

从已关闭的文档或服务器上的文档中清除嵌入的应用程序清单和缓存的数据

  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 类的静态 RemoveCustomization 方法,并在参数中指定解决方案文档路径。

    If (ServerDocument.IsCustomized("C:\Documents\SolutionDocument.doc")) Then
    
        ServerDocument.RemoveCustomization("C:\Documents\SolutionDocument.doc")
    End If
    
    if (ServerDocument.IsCustomized(@"C:\Documents\SolutionDocument.doc"))
    {
        ServerDocument.RemoveCustomization(@"C:\Documents\SolutionDocument.doc");
    }
    

请参见

任务

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

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

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

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

概念

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

缓存数据

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