如何:以编程方式更新应用程序清单程序集路径 (2003 System)

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

Microsoft Office 版本

  • Microsoft Office 2003

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

可以使用 Visual Studio Tools for Office 运行时中的对象模型以编程方式更新嵌入到文档中的应用程序清单,该文档是文档级自定义项的一部分。

当更改程序集的路径时,必须创建新的应用程序清单并替换具有过时路径的应用程序清单。可以在程序集的路径中使用环境变量,如 %ProgramFiles% 或 %UserProfile%。

您必须将用于操作对象模型的代码放置在一个新项目(而非 Visual Studio Tools for Office 解决方案)中,例如控制台应用程序或 Windows 窗体项目。Visual Studio Tools for Office 包括一个示例,该示例演示如何创建可用于编辑嵌入的应用程序清单的工具。有关更多信息,请参见 ServerDocument 示例

有另一个用于更新清单的模型,该模型会对服务器上的 XML 文件进行修改。有关更多信息,请参见 如何:更改文档级自定义项的位置 (2003 System)

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

本主题不适用于应用程序级外接程序,因为它们不使用嵌入的应用程序清单。要更改外接程序程序集的路径,请使用文本编辑器更新客户端计算机上的应用程序清单。有关更多信息,请参见 Office 解决方案的应用程序清单 (2003 System)。有关应用程序级外接程序和文档级自定义项的更多信息,请参见 文档级自定义项的体系结构

以编程方式更改程序集的路径

  1. 在您的对象模型操作项目中添加对 Microsoft.VisualStudio.Tools.Office.Runtime.v9.0 的引用(如果尚未添加)。

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

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. 调用 ServerDocument 类的静态 AddCustomization 方法,然后传入需要的参数。您应首先调用 RemoveCustomization 方法从文档中移除所有现有 Visual Studio Tools for Office 自定义项,否则 AddCustomization 将引发 InvalidOperationException

    Dim solutionDocument As String = "C:\Documents\ExcelApplication.xls"
    Dim assemblyName As String = "ExcelApplication.dll"
    Dim manifestPath As String = "\\serversame\deployshare\ExcelApplication.application"
    Dim applicationVersion As String = "1.0.0.1"
    
    If ServerDocument.IsCustomized(solutionDocument) Then
        ServerDocument.RemoveCustomization(solutionDocument)
    End If
    
    ServerDocument.AddCustomization( _
        solutionDocument, assemblyName, manifestPath, _
        applicationVersion, False)
    
    string solutionDocument = @"C:\Documents\ExcelApplication.xls";
    string assemblyName = "ExcelApplication.dll";
    string manifestPath = @"\\servername\deployshare\ExcelApplication.application";
    string applicationVersion = "1.0.0.1";
    
    if (ServerDocument.IsCustomized(solutionDocument))
    {
        ServerDocument.RemoveCustomization(solutionDocument);
    }
    
    ServerDocument.AddCustomization(
        solutionDocument, assemblyName, manifestPath, 
        applicationVersion, false);
    

请参见

任务

如何:以编程方式更改部署清单的路径 (2003 System)

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

概念

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

部署 Office 解决方案 (2003 System)

参考

Office 解决方案的应用程序清单 (2003 System)

Office 解决方案的部署清单 (2003 System)