다음을 통해 공유


플러그 인 등록 및 배포

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

플러그 인 및 사용자 지정 워크플로 활동은 Microsoft Dynamics 365의 기존 기능을 확장하기 위해 개발하는 사용자 지정 코드입니다. 플러그 인 또는 사용자 지정 워크플로 활동을 사용하려면 먼저 서버에 등록되어야 합니다. 특정 SDK 클래스를 사용하여 등록 코드를 작성하여 플러그 인 및 사용자 지정 워크플로 활동을 프로그래밍 방식으로 Microsoft Dynamics 365(온라인 및 온-프레미스)에 등록할 수 있습니다. 하지만 쉽게 배우고 사용자 지정 코드의 개발 및 배포 속도를 높이기 위해 플러그 인 및 사용자 지정 워크플로 활동 등록 도구가 SDK의 Bin 폴더에 포함됩니다.Microsoft Dynamics CRM SDK 패키지를 다운로드합니다.

이 항목이 플러그 인에 주로 초점을 맞춘다면 대부분의 정보는 사용자 지정 워크플로 활동에도 적용 가능합니다. 둘 사이에 한 가지 차이점은 사용자 지정 워크플로 활동 어셈블리에 대해 어셈블리만 등록합니다. 플러그 인의 경우 플러그 인 어셈블리와 플러그 인 당 하나 이상의 단계를 등록합니다. 사용자 지정 워크플로 활동에 대한 자세한 내용은 사용자 지정 워크플로 활동(워크플로 어셈블리)을 참조하십시오.

System_CAPS_security 보안 참고

안정적이고 신뢰할 수 있는 원본에서 가져오지 않은 경우 모든 플러그 인 또는 사용자 지정 워크플로 활동을 등록하지 마십시오.

플러그 인을 솔루션 구성 요소로 패키지하는 방법에 대한 자세한 내용은 솔루션을 사용하여 확장 패키지 및 배포를 참조하십시오.

이 항목의 내용

플러그 인 등록 도구

플러그 인 저장소

배포

어셈블리 버전 관리 및 솔루션

보안 제한

플러그 인 프로그래밍 방식으로 등록

사용자 지정 코드 실행 활성화 또는 비활성화

플러그 인 등록 도구

Plug-in Registration 도구는 그래픽 사용자 인터페이스를 제공하고 Microsoft Dynamics 365에 플러그 인 및 사용자 지정 워크플로 활동 등록을 지원합니다. 그러나 플러그 인과 사용자 지정 워크플로 활동은 샌드박스(격리 모드) Microsoft Dynamics 365(온라인)에서만 등록할 수 있습니다.

도구를 사용하여 플러그 인을 등록 및 배포하는 방법에 대한 자세한 내용은 연습: 플러그 인 등록 도구를 사용하여 플러그 인 등록을 참조하십시오. 도구는 개발 프로세스 속도를 높일 수 있도록 외부 도구로 Visual Studio도구 메뉴에 추가할 수 있습니다.

플러그 인 저장소

온-프레미스 배포의 경우 샌드박스에 등록되지 않은 플러그 인은 Microsoft Dynamics 365 서버의 데이터베이스 또는 온-디스크 파일 시스템에 저장할 수 있습니다. 온-디스크 대신 Microsoft Dynamics 365 데이터베이스에서 프로덕션이 가능한 플러그 인에 저장하는 것이 좋습니다. 데이터베이스에 저장된 플러그 인은 데이터 센터 클러스터의 여러 Microsoft Dynamics 365 서비스에서 자동으로 배포됩니다. 플러그 인의 온-디스크 저장소는 Microsoft Visual Studio를 사용하여 플러그 인을 디버깅하는 데 유용합니다. 하지만 데이터베이스에 저장된 플러그 인을 디버깅할 수 있습니다. 자세한 내용은 플러그 인 디버깅을 참조하십시오.

샌드박스에 등록된 플러그 인은 Microsoft Dynamics 365 배포(온-프레미스, IFD 또는 온라인)에 관계 없이 데이터베이스에 저장해야 합니다.

배포

온-프레미스 또는 IFD(인터넷 연결) Microsoft Dynamics 365 설치의 경우 다른 컴퓨터에서 Microsoft Dynamics 365 서버 디스크(온-디스크 배포)에 플러그 인을 배포하면 등록하기 전에 플러그 인 어셈블리를 서버에 수동으로 복사해야 합니다. 플러그 인을 실행하는 각 서버의 <installdir>\Program Files\Microsoft CRM\server\bin\assembly 폴더에 어셈블리를 배포해야 합니다.

시스템 사용자가 Microsoft Dynamics 365에서 이벤트를 발생시키는 데 등록된 플러그 인 어셈블리는 아직 서버에 없는 상황을 방지하도록 어셈블리를 서버의 …\bin\assembly 폴더에 복사한 후 플러그 인 등록을 수행해야 합니다. 서버 데이터베이스 배포의 경우 플러그 인 어셈블리는 위와 같은 상황이 문제가 되지 않도록 플러그 인 등록 중 자동으로 복사됩니다.

플러그 인 디자인에 따라 플러그 인은 참조되는 다른 어셈블리를 실행해야 할 수 있습니다. 플러그 인을 데이터베이스 또는 디스크 중 어디에 배포하든 상관 없이 플러그 인에 다른 어셈블리를 실행해야 할 경우 플러그 인이 실행되는 각 서버의 전역 어셈블리 캐시에 어셈블리 사본을 두어야 합니다. 해당 서버의 전역 어셈블리 캐시에 액세스할 수 없으므로 Microsoft Dynamics 365(온라인) 서버에는 적용하지 되지 않습니다.

개발 환경에서 스테이징 또는 프로덕션 서버로 플러그 인을 이동하려면

  1. 개발 컴퓨터에서 플러그 인 코드를 작성합니다. 디버그 정보는 포함하지 않습니다. 성능을 위해 플러그 인을 최적화합니다.

  2. Microsoft Dynamics 365 서버 데이터베이스에서 플러그 인을 등록합니다.

  3. Microsoft Dynamics 365 웹 응용 프로그램을 사용하여 솔루션을 만들거나 기존 솔루션을 사용하고 해당 솔루션에 플러그 인을 추가합니다.

  4. 다른 필요한 구성 요소를 솔루션에 추가한 후 솔루션을 내보냅니다.

  5. 스테이징 또는 프로덕션 서버에 솔루션을 가져옵니다.

어셈블리 버전 관리 및 솔루션

Microsoft Visual Studio 프로젝트의 Assembly.info 파일에 정의된 major.minor.build.revision의 숫자 형식을 사용하여 플러그 인 어셈블리 버전을 지정할 수 있습니다. 새로운 솔루션에서 어셈블리 버전 번호가 변경된 부분에 따라 가져오기를 통해 기존 솔루션이 업데이트될 때 다음 동작이 적용됩니다.

  • 빌드 또는 수정 어셈블리 버전 번호가 변경됩니다.

    이것은 전체 업그레이드로 간주됩니다. 업데이트된 어셈블리가 포함된 솔루션을 가져오면 어셈블리의 이전 버전이 제거됩니다. 이전 솔루션에서 기존 단계가 어셈블리의 새 버전을 참조하도록 자동으로 변경됩니다.

  • 빌드 또는 수정 번호를 제외하고 어셈블리 주 또는 부 버전 번호가 변경됩니다.

    수정된 어셈블리가 포함된 업데이트된 솔루션을 가져올 때 어셈블리는 기존 솔루션에서 이전 버전의 어셈블리와 완전히 다른 어셈블리로 간주됩니다. 기존 솔루션에서 플러그 인 등록 단계는 이전 버전의 어셈블리를 계속 참조합니다. 수정된 어셈블리를 가리키도록 이전 어셈블리에 대한 기존 플러그 인 등록 단계를 원하는 경우 플러그 인 등록 도구를 사용하여 수정된 어셈블리 유형을 참조하는 단계 구성을 수동으로 변경해야 합니다. 나중에 가져오기 위해 솔루션에 업데이트된 어셈블리를 내보내기 전에 수행해야 합니다.

솔루션에 대한 자세한 내용은 솔루션 소개를 참조하십시오.

보안 제한

권한이 있는 사용자만 플러그 인을 등록 사용할 수 있는 보안 제한이 있습니다. 격리 모드로 등록되지 않은 플러그 인의 경우 플러그 인이 등록되는 시스템 사용자 계정은 배포 관리자의 배포 관리자 그룹에 있어야 합니다. 시스템 관리자 계정 또는 배포 관리자 그룹에 포함된 사용자 계정만 배포 관리자를 실행할 수 있습니다.

중요

격리되지 않은 플러그 인의 경우 배포 관리자 그룹에 등록 사용자 계정을 포함하지 못하면 플러그 인 등록 중 예외가 발생합니다. 예외 설명에는 "SDK 엔터티에 대한 만들기 작업을 완료할 수 있는 충분한 권한이 없음"이 명시되어 있습니다.

플러그 인이 등록되는 시스템 사용자 계정에는 다음 조직 수준 보안 권한이 있어야 합니다.

  • prvCreatePluginAssembly

  • prvCreatePluginType

  • prvCreateSdkMessageProcessingStep

  • prvCreateSdkMessageProcessingStepImage

  • prvCreateSdkMessageProcessingStepSecureConfig

자세한 내용은 Security role and privilege referenceMicrosoft Dynamics 365의 보안 모델을 참조하십시오.

샌드박스(격리 모드)에 등록된 플러그 인에는 플러그 인이 등록되는 시스템의 사용자 계정에는 시스템 관리자 역할이 있어야 합니다.배포 관리자 그룹의 구성원 자격은 필요하지 않습니다.

플러그 인 프로그래밍 방식으로 등록

플러그 인 및 이미지를 등록하는 데 사용되는 주요 엔터티 유형: PluginAssembly, PluginType, SdkMessageProcessingStepSdkMessageProcessingStepImage. 사용자 지정 워크플로 활동을 등록하는 데 사용되는 주요 엔터티 유형은 PluginAssemblyPluginType입니다. 이러한 엔터티를 사용하여 작업을 만들고, 업데이트, 검색 및 삭제합니다.

이미지에 대한 자세한 내용은 플러그 인에 전달된 데이터 컨텍스트 이해를 참조하십시오.

사용자 지정 코드 실행 활성화 또는 비활성화

여기에 설명된 대로 서버에서 플러그 인 및 사용자 지정 워크플로 활동을 포함하여 Windows PowerShell을 사용하여 사용자 지정 코드를 활성화하거나 비활성화할 수 있습니다. 또는 배포 웹 서비스를 사용할 수 있습니다. 자세한 내용은 배포 엔터티 및 배포 구성 설정을 참조하여 CustomCodeSettings.AllowExternalCode 속성을 설정합니다.

사용자 지정 코드 실행을 활성화 또는 비활성화하려면

  1. Windows PowerShell 명령 창을 엽니다.

  2. Microsoft Dynamics 365 PowerShell 스냅인을 추가합니다.

    Add-PSSnapin Microsoft.Crm.PowerShell
    
  3. 현재 설정 검색:

    $setting = get-crmsetting customcodesettings
    
  4. 현재 설정 수정:

    $setting.AllowExternalCode="True"
    
    set-crmsetting $setting
    
  5. 설정 확인:

    get-crmsetting customcodesettings
    

사용자 지정 코드 실행을 비활성화하려면

  1. Windows PowerShell 명령 창을 엽니다.

  2. Microsoft Dynamics 365 PowerShell 스냅인을 추가합니다.

    Add-PSSnapin Microsoft.Crm.PowerShell
    
  3. 현재 설정 검색:

    $setting = get-crmsetting customcodesettings
    
  4. 현재 설정 수정:

    $setting.AllowExternalCode=0
    
    set-crmsetting $setting
    
  5. 설정 확인:

    get-crmsetting customcodesettings
    

참고 항목

플러그 인 개발
플러그 인 디버깅
플러그 인 격리, 트러스트 및 통계
솔루션을 사용하여 확장 패키지 및 배포
엔터티별 권한

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 저작권 정보