다음을 통해 공유


ServerDocument.AddCustomization 메서드 (String, Uri)

지정된 어셈블리 이름 및 배포 매니페스트를 사용하여 지정된 문서에 사용자 지정을 연결합니다.

네임스페이스:  Microsoft.VisualStudio.Tools.Applications
어셈블리:  Microsoft.VisualStudio.Tools.Applications.ServerDocument(Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

구문

‘선언
Public Shared Sub AddCustomization ( _
    documentPath As String, _
    deploymentManifestUrl As Uri _
)
public static void AddCustomization(
    string documentPath,
    Uri deploymentManifestUrl
)

매개 변수

  • documentPath
    형식: System.String
    사용자 지정을 연결할 문서의 전체 경로입니다.
  • deploymentManifestUrl
    형식: System.Uri
    솔루션의 배포 매니페스트에 대한 URL입니다.

예외

예외 상황
ArgumentNullException

documentPath 또는 deploymentManifestUrl이 nullNull 참조(Visual Basic의 경우 Nothing)이거나 비어 있는 경우

ArgumentException

deploymentManifestUrl에 절대 URL이 지정되지 않은 경우

FileNotFoundException

documentPath 또는 deploymentManifestUrl에서 존재하지 않는 파일을 참조하는 경우

DocumentAlreadyCustomizedException

documentPath로 지정된 문서에 사용자 지정이 이미 있는 경우

InvalidManifestException

deploymentManifestUrl로 지정된 배포 매니페스트가 올바르지 않은 경우

DocumentNotCustomizedException

documentPath로 지정된 문서가 손상되었거나 사용 권한이 제한된 경우

UnknownCustomizationFileException

documentPath로 지정된 문서의 파일 확장명이 Microsoft Visual Studio Tools for Office Runtime에서 지원되지 않는 경우

설명

AddCustomization 메서드는 문서에 _AssemblyName_AssemblyLocation 사용자 지정 문서 속성을 추가하여 지정된 사용자 지정을 문서와 연결합니다. 이러한 속성은 문서에 사용자 지정이 있음을 식별하고 배포 매니페스트의 위치를 지정합니다. 이 메서드가 성공적으로 호출된 후 다음에 사용자가 지정된 문서를 열면 런타임에서 Office 솔루션의 설치를 시도합니다. 사용자 지정 문서 속성에 대한 자세한 내용은 사용자 지정 문서 속성 개요를 참조하십시오.

사용자 지정에서 지정된 문서에 있을 것으로 예상하는 컨트롤이 해당 문서에 들어 있지 않은 경우 AddCustomization 메서드가 성공적으로 수행되기는 하지만 사용자가 문서를 열 때 어셈블리가 로드되지 않습니다.

fileType 매개 변수는 문서 수준 사용자 지정을 지원하는 파일 이름 확장명이 있는 문서를 지정해야 합니다. Word XML 문서(*xml) 또는 Word 2003 XML 문서(*xml) 파일 형식으로 저장되는 문서에 사용자 지정을 첨부할 수 없습니다. 지원되는 파일 형식에 대한 자세한 내용은 문서 수준 사용자 지정 아키텍처를 참조하십시오.

예제

다음 코드 예제에서는 AddCustomization 메서드를 사용하여 지정된 문서에 사용자 지정을 연결합니다.

이 예제에는 다음 사항이 필요합니다.

  • 콘솔 응용 프로그램 프로젝트 또는 다른 비 Office 프로젝트입니다.

  • 다음 어셈블리에 대한 참조:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 및 Microsoft.VisualStudio.Tools.Applications.Runtime.dll(.NET Framework 4를 대상으로 하는 프로젝트의 경우)

      또는

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll 및 Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll(.NET Framework 3.5를 대상으로 하는 프로젝트의 경우)

  • 코드 파일 상단에 있는 Microsoft.VisualStudio.Tools.ApplicationsMicrosoft.VisualStudio.Tools.Applications.Runtime 네임스페이스에 대해 Imports(Visual Basic의 경우) 또는 using(C#의 경우) 문.

Private Sub AddCustomizationUsingDocumentPath(ByVal documentPath As String, _
    ByVal deployManifestPath As String)
    Dim runtimeVersion As Integer = 0

    Try
        ' Make sure that this document does not yet have any Visual Studio Tools 
        ' for Office customizations.
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 0 Then
            Dim deploymentManifestUri As New Uri(deployManifestPath)
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri)
            MessageBox.Show("The document was successfully customized.")
        Else
            System.Windows.Forms.MessageBox.Show("The document is already customized.")
        End If

    Catch ex As System.IO.FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As UnknownCustomizationFileException
        System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
            "extension that is not supported by Visual Studio Tools for Office.")
    Catch ex As DocumentNotCustomizedException
        System.Windows.Forms.MessageBox.Show("The document could not be customized." & _
        vbLf & ex.Message)
    End Try
End Sub
private void AddCustomizationUsingDocumentPath(string documentPath, string deployManifestPath)
{
    int runtimeVersion = 0;

    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);

        // Make sure that this document does not yet have any Visual Studio Tools 
        // for Office customizations.
        if (runtimeVersion == 0)
        {
            Uri deploymentManifestUri = new Uri(deployManifestPath);
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri);
            MessageBox.Show("The document was successfully customized.");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show("The document is already customized.");
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (UnknownCustomizationFileException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document has a file " +
            "extension that is not supported by Visual Studio Tools for Office.");
    }
    catch (DocumentNotCustomizedException ex)
    {
        System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" +
            ex.Message);
    }
}

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

ServerDocument 클래스

AddCustomization 오버로드

Microsoft.VisualStudio.Tools.Applications 네임스페이스