Microsoft Visual Studio Tools for the Microsoft Office system (version 3.0)
How to: Update Application Manifest Assembly Paths Programmatically (2003 System)

Applies to

The information in this topic applies only to the specified Visual Studio Tools for Office projects and versions of Microsoft Office.

Project type

  • Document-level projects

Microsoft Office version

  • Microsoft Office 2003

For more information, see Features Available by Application and Project Type.

You can use the object model in the Visual Studio Tools for Office runtime to programmatically update the application manifest that is embedded in a document that is part of a document-level customization.

When you change the paths to the assemblies, you must create a new application manifest and replace the one that has the outdated paths. You can use environment variables, such as %ProgramFiles% or %UserProfile%, in the paths to the assemblies.

You must put the code for manipulating the object model in a new project (not your Visual Studio Tools for Office solution), such as a console application or Windows Forms project. Visual Studio Tools for Office includes a sample that demonstrates how to create a tool that can be used to edit the embedded application manifest. For more information, see ServerDocument Sample.

There is another model for updating manifests that involves modifying XML files on a server. For more information, see How to: Change the Location of Document-Level Customizations (2003 System).

NoteNote:

This topic does not apply to application-level add-ins, because they do not use embedded application manifests. To change the path to the add-in assembly, use a text editor to update the application manifest that is on the client computer. For more information, see Application Manifests for Office Solutions (2003 System). For more information about application-level add-ins and document-level customizations, see Architecture of Document-Level Customizations.

To change the path to the assemblies programmatically

  1. Add a reference to Microsoft.VisualStudio.Tools.Office.Runtime.v9.0 to your object model manipulation project if you do not already have one.

  2. Add an Imports or using statement for the runtime to the top of your code file.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
  3. Call the static AddCustomization(String, String, String, String, Boolean) method of the ServerDocument class, and pass in the required arguments. You should first call the RemoveCustomization(String) method to remove any existing Visual Studio Tools for Office customizations from the document, or AddCustomization(String, String, String, String, Boolean) will throw an 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);