This documentation is archived and is not being maintained.

ITextTemplatingEngineHost.ResolveAssemblyReference Method

Allows a host to provide additional information about the location of an assembly.

Namespace: Microsoft.VisualStudio.TextTemplating
Assembly: Microsoft.VisualStudio.TextTemplating (in microsoft.visualstudio.texttemplating.dll)

string ResolveAssemblyReference (
	string assemblyReference
)
String ResolveAssemblyReference (
	String assemblyReference
)
function ResolveAssemblyReference (
	assemblyReference : String
) : String

Parameters

assemblyReference

The assembly to resolve.

Return Value

A String containing the specified assembly reference, or the specified assembly reference with additional information.

If the user has specified the optional assembly directive in a text template, the engine calls this method. This method can be called 0, 1, or multiple times, for each text template transformation. For more information, see Directive Syntax (Domain-Specific Languages).

A host can choose to search for the assembly in different locations, in the order it prefers, or add a path of its choosing to the beginning of the assembly reference.

The following code example shows a possible implementation for a custom host. This code example is part of a larger example provided for the ITextTemplatingEngineHost interface.

public string ResolveAssemblyReference(string assemblyReference)
{
    //if the argument is the fully qualified path of an existing file,
    //then we are done (this does not do any work)
    //----------------------------------------------------------------
    if (File.Exists(assemblyReference))
    {
        return assemblyReference;
    }

    //the assembly might be in the same folder as the text template that 
    //called the directive
    //----------------------------------------------------------------
    string candidate = Path.Combine(Path.GetDirectoryName(this.inputFile), assemblyReference);
    if (File.Exists(candidate))
    {
        return candidate;
    }
        
    //this can be customized to search specific paths for the file,
    //or to search the GAC
    //----------------------------------------------------------------

    //this can be customized to accept paths to search as command line
    //arguments
    //----------------------------------------------------------------

    //if we cannot do better - return the original file name
    return "";
}
Show: