방법: SharePoint 명령 만들기

SharePoint 도구 확장에서 서버 개체 모델을 사용하려면 API를 호출하는 사용자 지정 SharePoint 명령을 만들어야 합니다. 어셈블리에 서버 개체 모델을 직접 호출할 수 있는 SharePoint 명령을 정의합니다.

SharePoint 명령의 용도에 대한 자세한 내용은 SharePoint 개체 모델 호출을 참조하십시오.

SharePoint 명령을 만들려면

  1. 다음과 같이 구성되는 클래스 라이브러리 프로젝트를 만듭니다.

    참고

    SharePoint 명령은 .NET Framework 3.5를 대상으로 하고 SharePoint 도구 확장은 .NET Framework 4을 대상으로 하기 때문에 SharePoint 도구 확장을 정의하는 동일한 프로젝트에서 SharePoint 명령을 구현할 수 없습니다. 확장에서 사용하는 모든 SharePoint 명령은 별도 프로젝트에서 정의해야 합니다. 자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.

  2. 다음 어셈블리에 대한 참조를 추가합니다.

    • Microsoft.VisualStudio.SharePoint.Commands

    • Microsoft.SharePoint

  3. 해당 프로젝트의 클래스에서 SharePoint 명령을 정의하는 메서드를 만듭니다. 이 메서드는 다음 지침을 따라야 합니다.

    • 매개 변수는 하나 또는 두 개 있을 수 있습니다.

      첫 번째 매개 변수는 ISharePointCommandContext 개체여야 합니다. 이 개체는 해당 명령이 실행되는 Microsoft.SharePoint.SPSite 또는 Microsoft.SharePoint.SPWeb을 제공합니다. 또한 Visual Studio의 출력 창 또는 오류 목록 창에 메시지를 작성하는 데 사용할 수 있는 ISharePointCommandLogger 개체도 제공합니다.

      두 번째 매개 변수는 선택적이고 그 형식은 사용자가 선택할 수 있습니다. SharePoint 도구 확장의 데이터를 명령으로 전달해야 하는 경우 이 매개 변수를 SharePoint 명령에 추가할 수 있습니다.

    • 선택 사항으로, 반환 값을 사용할 수 있습니다.

    • 두 번째 매개 변수와 반환 값은 WCF(Windows Communication Foundation)에서 serialize할 수 있는 형식이어야 합니다. 자세한 내용은 Types Supported by the Data Contract SerializerUsing the XmlSerializer Class을 참조하십시오.

    • 메서드의 표시 유형은 public, internal 또는 private 중 하나일 수 있고, 메서드는 정적이거나 그렇지 않을 수 있습니다.

  4. 메서드에 SharePointCommandAttribute를 적용합니다. 이 특성은 명령의 고유 식별자를 지정합니다. 이 식별자는 메서드 이름과 일치하지 않아도 됩니다.

    SharePoint 도구 확장에서 명령을 호출하는 경우 동일한 고유 식별자를 지정해야 합니다. 자세한 내용은 방법: SharePoint 명령 실행을 참조하십시오.

예제

다음 코드 예제에서는 식별자가 Contoso.Commands.UpgradeSolution인 SharePoint 명령을 보여 줍니다. 이 명령에서는 배포된 솔루션으로 업그레이드하기 위해 서버 개체 모델의 API를 사용합니다.

<SharePointCommand("Contoso.Commands.UpgradeSolution")> _
Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
    Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
    If solution Is Nothing Then
        Throw New InvalidOperationException("The solution has not been deployed.")
    End If
    solution.Upgrade(fullWspPath)
End Sub
[SharePointCommand("Contoso.Commands.UpgradeSolution")]
private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
{
    SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];

    if (solution == null)
    {
        throw new InvalidOperationException("The solution has not been deployed.");
    }

    solution.Upgrade(fullWspPath);
}

이 명령에는 암시적인 첫 번째 ISharePointCommandContext 매개 변수 외에 SharePoint 사이트로 업그레이드되는 .wsp 파일의 전체 경로를 포함하는 사용자 지정 문자열 매개 변수도 있습니다. 보다 큰 예제의 컨텍스트에서 이 코드를 보려면 연습: SharePoint 프로젝트용 사용자 지정 배포 단계 만들기를 참조하십시오.

코드 컴파일

이 예제에는 다음 어셈블리에 대한 참조가 필요합니다.

  • Microsoft.VisualStudio.SharePoint.Commands

  • Microsoft.SharePoint

명령 배포

명령을 배포하려면 명령 어셈블리를 해당 명령을 사용하는 확장 어셈블리와 함께 동일한 VSIX(Visual Studio Extension) 패키지에 포함합니다. 또한 extension.vsixmanifest 파일에 해당 명령 어셈블리에 대한 항목도 추가해야 합니다. 자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.

참고 항목

작업

연습: 서버 탐색기를 확장하여 웹 파트 표시

개념

SharePoint 개체 모델 호출

기타 리소스

방법: SharePoint 명령 실행