This documentation is archived and is not being maintained.

How to: Update Application Manifest Assembly Paths Programmatically

Note Required applications

The features in this topic are available only if you have the required applications installed.

For more information, see Features Available by Product Combination.

  • One of these development environments:

    VSTO 2005


    Visual Studio Team System

  • Microsoft Office 2003

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 for Microsoft Office Word 2003 or Microsoft Office Excel 2003. Generally this is not necessary, because 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.

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), for example in 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 Application Manifest Editor Sample.


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. For more information about application-level add-ins and document-level customizations, see Office Solutions Architecture Overview.

To change the path to the assemblies programmatically

  1. Add a reference to Microsoft.VisualStudio.Tools.Applications.Runtime 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.

    using Microsoft.VisualStudio.Tools.Applications.Runtime;
  3. Call the static AddCustomization method of the ServerDocument class, and pass in the required arguments. You must first call the RemoveCustomization method to remove any existing Visual Studio Tools for Office customizations from the document, or AddCustomization will throw an InvalidOperationException.

    string solutionDocument = @"C:\Documents\ExcelApplication.xls";
    string assemblyName = "ExcelApplication.dll";
    string manifestPath = @"\\servername\deployshare\ExcelApplication.application";
    string applicationVersion = "";
    if (ServerDocument.IsCustomized(solutionDocument))
        solutionDocument, assemblyName, manifestPath, 
        applicationVersion, false);

See Also