Share via


Dynamics CRM Package Deployer 도구 및 Windows PowerShell을 사용하여 패키지 배포

 

게시 날짜: 2017년 2월

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

참고

여기에 제공된 정보는 Dynamics 365(온라인) 버전 9.0 이전의 Dynamics 365 버전입니다. 최신 설명서는 Dynamics CRM Package Deployer 및 Windows PowerShell을 사용하여 패키지 배포를 참조하십시오.

Microsoft Dynamics CRM Package Deployer를 통해 관리자는 Dynamics 365(온-프레미스) 또는 Microsoft Dynamics 365(온라인) 인스턴스에 패키지를 배포할 수 있습니다. "패키지"는 다음 중 일부 또는 전부로 구성될 수 있습니다.

  • 하나 이상의 Dynamics 365 솔루션 파일.

  • 플랫 파일 또는 구성 마이그레이션 도구에서 내보낸 데이터 파일.구성 마이그레이션 도구에 대한 자세한 내용은 구성 데이터 관리를 참조하십시오.

  • 패키지를 Microsoft Dynamics 365에 배포하는 동안 또는 배포 후 실행할 수 있는 사용자 지정 코드.

  • 패키지 배포 프로세스의 시작 및 끝에 표시할 수 있는, 패키지에 고유한 HTML 콘텐츠. 패키지에 배포되는 솔루션 및 파일의 설명을 제공하는 데 유용합니다.

개발자는 Microsoft Visual Studio에서 패키지 배포 템플릿을 사용하여 패키지를 만듭니다.추가 정보:MSDN: CRM Package Deployer에 대한 패키지 만들기

패키지를 만든 후 CRM 패키지 배포자를 실행하거나 도구의 Windows PowerShell cmdlets를 사용하여 배포할 수 있습니다.

중요

생산 조직에 패키지를 가져와 실행하기 전에, 먼저 생산 조직의 비생산 거울 이미지에서 패키지를 테스트합니다.

패키지를 배포하기 전에 생산 조직을 항상 백업합니다.

이 항목의 내용

패키지 배포자 도구로 패키지 배포

Windows PowerShell을 사용하여 패키지 배포

로그 파일을 사용하여 패키지 배포 문제 해결

패키지를 배포하기 위한 최상의 방법

패키지 배포자 도구로 패키지 배포

다음과 같은 방법으로 패키지 배포자 도구(packagedeployer.exe)을 사용하여 패키지를 구축할 수 있습니다.

패키지 배포자 도구를 사용하여 패키지 배포

명령줄에서 패키지 배포자 도구 사용

패키지 배포자 도구를 사용하여 패키지 배포

패키지 배포자 도구는 패키지를 한 번에 하나씩만 처리할 수 있습니다. 하지만 패키지 배포자 도구 디렉터리에서 사용할 수 있는 여러 패키지에서 패키지를 선택할 수 있는 기능을 사용자에게 제공합니다. 도구의 일부 화면 및 작업은 패키지 정의에 따라 다릅니다.패키지 배포자 도구를 설치할 필요가 없습니다. 다운로드하고 실행하면 됩니다.

  1. 배포할 패키지를 확보합니다. 패키지는 Visual Studio에서 패키지 프로젝트를 빌드할 때 Visual Studio 프로젝트 폴더 (<Project>\Bin\Debug)에서 만든 파일 또는 폴더 모음입니다. 프로젝트 디버그 폴더에서 다음을 복사합니다.

    • <PackageName> 폴더: 이 폴더에는 솔루션, 가져오기 구성 및 패키지 콘텐츠가 포함되어 있습니다.

    • <PackageName>.dll: 어셈블리에는 패키지 코드가 포함되어 있습니다. 기본적으로 어셈블리의 이름은 Visual Studio 프로젝트 이름과 동일합니다.

    Visual Studio를 사용하여 패키지를 만드는 방법에 대한 자세한 내용은 MSDN: Package Deployer 도구에 대한 패키지 만들기를 참조하십시오.

    이 항목에 대해 Visual Studio 프로젝트 디버거 폴더(<Project>\Bin\Debug)의 패키지 폴더와 어셈블리가 c:\DeployPackage 폴더로 복사된다고 가정합시다.

  2. Microsoft Dynamics CRM SDK를 다운로드합니다. 그런 후 다운로드한 실행 파일을 실행하여 패키지의 내용을 추출합니다.

  3. SDK\Tools\PackageDeployer 폴더에서 c:\DeployPackage의 패키지 폴더와 어셈블리를 SDK\Tools\PackageDeployer 폴더로 복사합니다.

  4. 파일을 복사한 후 SDK\Tools\PackageDeployer 폴더에서 PackageDeployer.exe 파일을 두 번 클릭하여 도구를 실행합니다.

  5. 도구의 기본 화면에서 계속을 클릭합니다.

  6. Microsoft Dynamics 365에 연결 화면에서 패키지를 배포할 Dynamics 365 서버에 연결하는 데 필요한 인증 정보를 제공합니다. 여러 조직이 있어서 패키지를 배포할 조직을 선택하려면 사용 가능한 조직 목록 항상 표시 확인란을 선택합니다.로그인을 클릭합니다.

  7. Dynamics 365 서버에 여러 조직이 있는 경우 연결하려는 Dynamics 365 조직을 선택합니다.

  8. 배포할 패키지를 선택하고 다음을 클릭합니다.

    Select your package in the Package Deployer Tool

  9. 다음 화면의 지침에 따라 패키지 배포 작업을 완료합니다.

    화면은 배포를 위해 선택한 패키지의 정의에 따라 나타납니다.패키지 배포자 도구를 사용하는 모든 패키지 배포의 경우 Unified Service Desk 패키지의 배포 관련 항목을 참조하십시오. Package Deployer를 사용하여 CRM Server에 샘플 Unified Service Desk 응용 프로그램 배포

명령줄에서 패키지 배포자 도구 사용

시스템 관리자 및 사용자 지정자는 명령줄에서 packagedeployer.exe로 국가별 언어 코드 등의 항목을 전달할 수 있습니다. 이러한 매개 변수는 명령줄에서 패키지 배포자 도구를 실행하는 방법을 통해서만 구성이 가능할 수 있습니다.

참고

이 기능은 Microsoft Dynamics CRM Online 2016 업데이트 0.1에서 처음으로 도입되었습니다.

이 표에서 사용할 수 있는 매개 변수입니다.

매개 변수

설명

기본값

RuntimePackageSettings

Packagedeployer.exe에서 LCID 및 SkipChecks 같은 명령줄 매개 변수를 허용하도록 지시합니다.

해당 없음

LCID=localeID

패키지의 사용 가능한 로캘 ID에서 영어-미국용 또는 프랑스어-프랑스용 1033 같은 로캘 ID를 지정합니다. 지정하지 않을 경우 기본 언어가 사용됩니다.

기본 언어 사용

SkipChecks=true/false

이 항목은 대상 환경이 다른 솔루션 또는 맞춤화를 포함하지 않은 경우에만 사용해야 합니다. true로 설정하면 솔루션 가져오기가 가져오기 성능을 향상시킬 수 있는 몇 가지 안전 검사를 건너뜁니다.

거짓

다음 예제는 CRM 패키지 배포자에서 몇 가지 안전 검사를 건너뛰고 가져올 언어를 폴란드어로 지정하도록 지시합니다.

packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"

참고

파이프 문자 |를 사용하여 명령줄에서 여러 항목과 함께 packagedeployer.exe를 실행할 때 항목을 구분합니다.

packagedeployer.exe로 전달될 수 있는 매개 변수 및 값에 대한 자세한 내용은 MSDN: CRM Package Deployer용 패키지 만들기를 참조하십시오.

Windows PowerShell을 사용하여 패키지 배포

패키지 배포자 도구는 패키지를 배포하기 위해 Windows PowerShell 지원도 제공합니다.

Powershell cmdlets를 사용하여 패키지를 배포하려면 다음 단계를 수행하십시오.

필수 조건

cmdlet 등록

cmdlet를 사용하여 패키지 검색

cmdlet를 사용하여 Dynamics 365 인스턴스에 접속

cmdlet를 사용하여 패키지 배포

cmdlet에 대한 자세한 도움말 보기

필수 조건

Powershell cmdlets 사용을 위한 필수 구성 요소는 다음과 같습니다.

  • Powershell을 사용하여 패키지를 배포하려면 Powershell 3.0 이상이 필요합니다.Powershell 버전을 확인하려면 Powershell 창을 실행한 후 다음 명령을 실행합니다. $Host

  • 서명된 Powershell 스크립트를 실행할 실행 정책을 설정합니다. 이렇게 하려면 관리자로서 Powershell 창을 실행한 후 다음 명령을 실행합니다. Set-ExecutionPolicy -ExecutionPolicy AllSigned

cmdlet 등록

Windows PowerShell cmdlets를 사용하려면 먼저 패키지 배포자 도구에 대해 등록해야 합니다. cmdlets를 등록하려면:

  1. 아직 등록하지 않았다면 Microsoft 다운로드 센터에서 Dynamics 365 SDK 패키지를 다운로드하고 패키지 파일을 실행하여 패키지의 압축을 풉니다. 패키지의 압축을 컴퓨터의 c:\CRM 폴더에 풀었다고 가정합니다.패키지 배포자 도구 및 기타 필수 파일은 c:\CRM\SDK\Tools\PackageDeployer에서 사용할 수 있습니다.

  2. 컴퓨터에서 높은 권한을 사용하여(관리자로 실행) Windows PowerShell을 시작합니다.

  3. Windows PowerShell 창의 프롬프트에서 디렉터리를 PackageDeployer 폴더 아래의 Windows PowerShell 폴더로 변경합니다. 이 경우:

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
    
  4. RegisterXRMTooling.ps1 스크립트를 실행하여 Package Deployer Windows PowerShell 어셈블리(dll)를 등록하고 패키지 배포자 도구에 대해 Windows PowerShell 스냅인을 설치합니다. 이렇게 하려면 다음 명령을 입력하고 Enter 키를 누릅니다.

    .\RegisterXRMTooling.ps1
    
  5. XRM 도구에 대한 Windows PowerShell 스냅인을 추가합니다. 그러면 cmdlets Get-CrmConnection 및 Get-CrmOrganizations이 등록됩니다.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    
  6. Package Deployer에 대한 Windows PowerShell 스냅인을 추가합니다. 그러면 cmdlets Get-CrmPackages 및 Import-CrmPackage가 등록됩니다.

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
    

이제 이러한 Windows PowerShell cmdlets를 사용할 준비가 되었습니다. 등록한 cmdlets를 나열하려면 Windows PowerShell 창의 프롬프트에서 다음 명령을 실행합니다.

Get-Help “Crm”

cmdlet를 사용하여 패키지 검색

cmdlet를 사용하려면 패키지를 PackageDeployer 폴더(이 경우, c:\CRM\SDK\Tools\PackageDeployer)에 복사해야 합니다. 패키지는 Visual Studio에서 프로젝트를 빌드할 때 Visual Studio 프로젝트 폴더(<Project>\Bin\Debug)에서 만든 파일 또는 폴더 모음입니다. 프로젝트 디버그 폴더의 전체 콘텐츠를 PackageDeployer 폴더로 복사합니다.Visual Studio를 사용하여 패키지를 빌드하는 방법에 대한 자세한 내용은 MSDN: CRM Package Deployer용 패키지 만들기를 참조하십시오.

  1. Powershell 창에서 다음 cmdlet를 사용하여 지정된 폴더(이 경우 c:\CRM\SDK\Tools\PackageDeployer)에 가져올 수 있는 패키지 목록을 반환합니다.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
    
  2. 폴더에서 패키지에 대한 정보가 필요할 경우 –PackageName 항목과 함께 Get-CrmPackages cmdlet를 사용하여 폴더에서 패키지 정의가 포함된 어셈블리의 이름을 지정할 수 있습니다.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
    
  3. 패키지 어셈블리 위치는 Get-CrmPackages cmdlet을 사용하여 변수에 저장할 수 있습니다. 그런 다음 Import-CrmPackage cmdlet에서 다시 사용하여 PackageDirectory 항목에 대한 값을 지정할 수 있습니다. 예를 들어, $MyPackages라는 변수에서 Get-CrmPackages cmdlet에서 반환된 하나 이상의 패키지에 대한 정보를 저장할 수 있습니다.

    $MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer 
    

    모든 패키지를 표시합니다.

    $MyPackages
    

    세 번째 패키지만 표시합니다.

    $MyPackages[2].PackageAssemblyLocation
    

    그런 다음 0부터 n까지의 배열에서 각 패키지를 참조할 수 있습니다. 예를들면, 이 cmdlet은 $MyPackages에서 발견된 첫 번째 패키지를 가져옵니다.

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
    

    참고

    Dynamics 365용 2016년 12월 업데이트(온라인 및 온-프레미스)으로 PackageAssemblyLocation 항목과 패키지의 폴더 위치 및 이름을 표시하는 기능이 처음으로 도입되었습니다.추가 정보:Dynamics 365 SDK

cmdlet를 사용하여 Dynamics 365 인스턴스에 접속

  1. 자격 증명을 제공하여 Microsoft Dynamics 365(온라인) 또는 Dynamics 365(온-프레미스) 인스턴스에 연결합니다. 다음 명령을 실행하면 Dynamics 365 인스턴스에 연결하기 위해 사용자 이름 또는 암호를 입력하라는 메시지가 표시되고 $Cred 변수에 사용자 이름 또는 암호를 저장하여, 나중에 Dynamics 365 Server에 연결할 때 사용할 수 있습니다.

    $Cred = Get-Credential
    
  2. Microsoft Dynamics 365(온라인) 또는 Dynamics 365(온-프레미스) 인스턴스에 연결하려면 다음 명령을 사용합니다.$CRMConn 변수에 연결 정보를 저장합니다.

    • Dynamics 365(온-프레미스) 인스턴스에 연결할 경우:

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
      
    • Microsoft Dynamics 365(온라인) 서버에 연결할 경우:

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
      

      참고

      DeploymentRegion 매개 변수의 경우, 올바른 값은 NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPNNorthAmerica2입니다.OnlineType 매개 변수의 경우 유효한 값은 Office365LiveID입니다.

  3. 2단계서 명령을 시행할 때 제공한 자격 증명의 유효성이 검사됩니다.

cmdlet를 사용하여 패키지 배포

그런 다음 $CRMConn 변수에 저장된 Dynamics 365 연결 정보를 사용하여 패키지를 Dynamics 365 인스턴스에 배포합니다. 다음 명령은 패키지를 배포하고, c:\UnpackedFiles 폴더에 패키지를 분해하며, c:\MyLogFiles 폴더의 로그 파일에 정보를 기록합니다.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose

참고

  • CrmConnection, PackageDirectory 및 PackageName 매개 변수는 필수입니다.

  • 패키지 폴더를 수동으로 지정하는 대신, PackageDirectory 항목으로 변수를 사용할 수 있습니다.추가 정보:cmdlet를 사용하여 패키지 검색

  • PackageName 매개 변수의 경우 패키지 정의가 포함된 어셈블리의 이름을 지정해야 합니다.

  • 패키지 배포 중 패키지 파일의 압축을 풀지 않은 경우 UnpackFilesDirectory 매개 변수를 지정할 필요가 없습니다.Visual Studio에서 패키지를 정의하는 동안 ImportConfig.xml 파일의 agentdesktopzipfile 매개 변수를 사용하여 파일의 압축을 풀지 지정합니다.추가 정보:MSDN: CRM Package Deployer용 패키지 만들기

  • Verbose 매개 변수는 선택 사항이며 패키지 배포 프로세스 중에 수행되는 활동의 자세한 로그를 표시하는 데 사용됩니다.

  • 옵션인 RuntimePackageSettings 항목은 다음 항목들과 함께 사용할 수 있습니다:

    • LCID=localeID 매개 변수는 패키지의 사용 가능한 로캘 ID에서 영어-미국용 또는 프랑스어-프랑스용 1033 같은 로캘 ID를 지정합니다. 지정하지 않을 경우 기본 언어가 사용됩니다.

    • SkipChecks=true/false 매개 변수는 대상 환경이 다른 솔루션 또는 사용자 지정을 포함하지 않은 경우에만 사용해야 합니다. 참으로 설정하면 솔루션 가져오기가 가져오기 성능을 향상시킬 수 있는 몇 가지 안전 검사를 건너뜁니다.

  • LogWriteDirectory 항목을 사용할 때 지정하는 폴더가 이미 존재해야 하며, Import-CrmPackage cmdlet을 실행하는 사용자는 해당 폴더에 대한 쓰기 권한이 있어야 합니다. 또한, LogWriteDirectory 항목을 사용할 때는 -Verbose 항목이 요구됩니다.

    LogWriteDirectory 항목은 Dynamics 365용 2016년 12월 업데이트(온라인 및 온-프레미스)와 함께 처음으로 도입되었습니다.추가 정보:Dynamics 365 SDK

다음 예제 명령은 SampleCRMPackage라는 이름의 패키지를 가져오고 영어-미국(1033)을 가져올 패키지 언어로 지정합니다.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033

cmdlet에 대한 자세한 도움말 보기

Powershell 창에서 cmdlet 이름과 함께 Get-Help cmdlet를 사용하여 cmdlet에 대한 자세한 도움말을 봅니다. 예를 들어 Import-CrmPackage cmdlet에 대한 자세한 도움말을 보려면:

Get-Help Import-CrmPackage -full

cmdlets에 대한 온라인 도움말을 보려면 CRM PowerShell 참조를 참조하십시오.

로그 파일을 사용하여 패키지 배포 문제 해결

패키지 배포자 도구는 도구 및 배포 패키지를 사용하여 Microsoft Dynamics 365 인스턴스에 로그인할 때 발생할 수 있는 오류에 대한 자세한 정보를 얻도록 로깅 지원을 제공합니다. 기본적으로 이 도구는 여러분이 도구를 실행하는 컴퓨터의 다음 위치에서 사용할 수 있는 로그 파일 세 가지를 생성합니다: c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. 다른 폴더를 지정하려면 -LogWriteDirectory Powershell cmdlet 항목을 사용하십시오.추가 정보:cmdlet를 사용하여 패키지 검색

  • Login_ErrorLog.log: Dynamics 365인스턴스에 로그인하기 위해 도구를 사용할 때 발생한 문제에 대한 정보를 제공합니다. 로그인하는 동안 문제가 있는 경우 메시지가 이 로그 파일에 대한 링크와 함께 도구의 로그인 화면에 나타납니다. 로그인 요청을 처리하는 동안 오류가 발생했고 사용자는 오류 로그를 볼 수 있다는 메시지가 나타납니다. 메시지의 링크를 클릭하여 이 로그 파일을 볼 수 있습니다. 도구에서 로그인 문제가 발생할 경우 로그 파일이 처음 만들어집니다. 그 후로 로그 파일은 문제가 발생할 때마다 로그인 문제에 대한 정보를 기록하는 데 사용됩니다.

  • PackageDeployer.log: 패키지를 배포하는 동안 도구에서 수행한 각 작업에 대한 자세한 정보를 제공합니다. 화면 아래쪽의 로그 파일 보기 링크를 클릭하면 도구에서 로그 파일을 볼 수 있습니다.

  • ComplexImportDetail.log: 도구를 사용한 마지막 배포에서 가져온 데이터에 대한 자세한 정보를 제공합니다. 이 도구를 사용하여 패키지를 배포할 때마다 로그 파일의 기존 정보는 동일한 디렉터리의 ComplexImportDetail._old.log 파일로 이동하고 ComplexImportDetail.log 파일은 도구를 사용하여 수행한 마지막 가져오기에 대한 정보를 표시합니다.

패키지를 배포하기 위한 최상의 방법

패키지를 배포하는 동안 Dynamics 365 관리자는 다음을 수행해야 합니다.

  • 어셈블리 원본에 다시 추적할 수 있도록 서명된 패키지 어셈블리를 요구합니다.

  • 패키지를 프로덕션 서버에서 실행하기 전에 테스트 인스턴스(프로덕션 인스턴스의 미러 이미지)에서 테스트합니다.

  • 패키지를 배포하기 전에 프로덕션 인스턴스를 백업합니다.

참고 항목

MSDN: CRM Package Deployer용 패키지 만들기
Dynamics 365 관리

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