솔루션 업데이트를 단순화하기 위한 패치 만들기

 

게시 날짜: 2017년 1월

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

솔루션에 엔터티를 추가하고 솔루션을 내보내면 엔터티와 모든 관련 자산이 해당 솔루션에 내보내집니다. 이러한 자산에는 속성, 양식, 관계, 시각화 및 엔터티에 포함된 기타 자산이 포함됩니다. 모든 개체를 내보내는 것은 대상 배포에 있는 개체를 실수로 수정하거나 의도하지 않은 종속성을 수행할 수 있음을 의미합니다. 

이 문제를 해결하기 위해 전체 엔터티와 모든 자산을 게시하는 대신 엔터티의 하위 구성 요소를 포함하는 솔루션 패치를 만들고 게시할 수 있습니다.  원본 솔루션과 하나 이상의 관련 패치는 대상 Microsoft Dynamics 365 조직에 있는 원본 솔루션의 업데이트된 버전으로 나중에 롤업(병합)한 다음 원본 솔루션으로 바꿀 수 있습니다.

패치

관리형 또는 비관리형 솔루션에 패치를 적용하고 엔터티 및 관련 엔터티 자산에 대한 변경 내용만 포함할 수 있습니다. 패치는 이러한 구성 요소가 배포된 조직에 이미 있기 때문에 종속되는 사용자 지정되지 않은 시스템 구성 요소 또는 관계는 포함하지 않습니다. 개발 주기의 어떤 시점에 모든 패치를 새로운 솔루션 버전으로 롤업하여 패치가 만들어졌던 원래 솔루션을 바꿀 수 있습니다.

패치는 Dynamics 365 데이터베이스에 Solution 엔터티 레코드로 저장됩니다. null이 아닌 ParentSolutionId 특성은 솔루션이 패치임을 나타냅니다. 패치는 조직 서비스 또는 웹 API를 통해 만들고 관리할 수 있으며, 제품 설치 스크립트 같은 자동화 개발에 유용합니다. 그러나 Dynamics 365 웹 응용 프로그램은 패치를 대화식으로 만들고 관리할 수 있는 다양한 웹 양식을 제공합니다.

  • 패치는 CloneAsPatchRequest 또는 CloneAsPatch Action를 사용하여 상위 솔루션에서만 만들 수 있습니다.

  • 상위 패치는 패치가 될 수 없습니다.

  • 패치는 상위 솔루션을 하나만 가질 수 있습니다.

  • 패치는 상위 솔루션에 솔루션 수준에서 종속성을 만듭니다.

  • 상위 솔루션이 있는 경우에만 패치를 설치할 수 있습니다.

  • ParentSolutionId에 의해 식별되는 상위 솔루션의 고유한 이름 및 주 버전/부 버전 번호가 대상 조직에 설치된 상위 솔루션과 일치하지 않는 경우 패치를 설치할 수 없습니다.

  • 패치 버전은 주 버전 번호와 부 버전 번호가 같아야 하지만 상위 솔루션 버전 번호보다 빌드 및 릴리스 번호는 높아야 합니다. 표시 이름은 다를 수 있습니다.

  • 솔루션에 패치가 있는 경우 후속 패치는 해당 솔루션의 기존 패치보다 버전 번호가 높아야 합니다.

  • 패치는 제거가 아닌 업데이트 추가 같이 솔루션과 동일한 작업을 지원합니다. 패치를 사용하여 솔루션에서 구성 요소를 제거할 수 없습니다. 솔루션에서 구성 요소를 제거하려면 업그레이드를 수행합니다.

  • 관리형으로 내보낸 패치는 관리형 상위 솔루션 위로 가져와야 합니다. 규칙은 패치 보호(관리형 또는 비관리형)가 상위와 일치해야 한다는 것입니다.

  • 프로덕션 목적으로 관리되지 않는 패치를 사용하지 마십시오.

  • 패치는 버전 8.0 이상의 Dynamics 365 조직에서만 지원됩니다.

이 릴리스의 SolutionPackager 및 PackageDeployer 도구는 솔루션 패치를 지원합니다. 패치와 관련된 명령줄 옵션에 대한 도구의 온라인 도움말을 참조하십시오.

패치 만들기

CloneAsPatchRequest 메시지 또는 CloneAsPatch Action을 사용하거나 웹 응용 프로그램을 사용하여 조직의 비관리형 솔루션에서 패치를 만듭니다. 패치를 만든 후에는 원래 솔루션은 잠기게 되며 솔루션을 상위 솔루션으로 식별하는 종속 패치가 조직에 존재하는 경우 패치를 변경하거나 내보낼 수 없습니다. 패치 버전 관리는 솔루션 버전 관리와 유사하며 다음 형식으로 지정됩니다: major.minor.build.release. 패치를 만들 때 기존 주 또는 부 솔루션 버전으로 변경할 수 없습니다.

패치 내보내기 및 가져오기

조직 서비스나 웹 API, 웹 응용 프로그램 또는 패키지 배포자 도구를 사용하여 패치를 내보내거나 가져올 수 있습니다. 관련 조직 서비스 메시지 요청은 ImportSolutionRequestExportSolutionRequest입니다. Web API의 관련 작업은 ImportSolution ActionExportSolution Action입니다.

패치 예

다음 표에는 패치 예제에 대한 세부 정보를 나열합니다. 이 예제에서 솔루션과 패치는 번호 순으로 내보내지며 일반적으로 솔루션 가져오기와 동일하게 추가됩니다.

패치 이름

설명

SolutionA, 버전 1.0(비관리형)

6개 필드가 있는 entityA을 포함합니다.

SolutionA, 버전 1.0.1.0(비관리형)

6개 필드(3개 업데이트됨)가 있는 entityA을 포함하며 10개 필드가 있는 entityB을 추가합니다.

SolutionA, 버전 1.0.2.0(비관리형)

10개 필드가 있는 entityC을 포함합니다.

가져오기 프로세스는 다음과 같습니다.

  1. 개발자 또는 사용자 지정자는 먼저 조직에 기본 솔루션(SolutionA 1.0)을 가져옵니다. 결과는 조직에 6개 필드가 있는 entityA입니다.

  2. 그런 다음 SolutionA 패치 1.0.1.0을 가져옵니다. 이제는 조직은 6개 필드(3개가 업데이트 되었음)가 있는 entityA와 10개 필드가 있는 entityB을 포함합니다.

  3. 마지막으로, SolutionA 패치 1.0.2.0을 가져옵니다. 이제 조직은 6개 필드(3개가 업데이트됨)가 있는 entityA와 10개 필드가 있는 entityB, 10개 필드가 있는 entityC을 포함합니다.

다른 패치 예

다음 표에 나열된 정보를 사용하여 다른 패치 예제를 살펴 보겠습니다.

패치 이름

설명

SolutionA, 버전 1.0(비관리형, 기본 솔루션)

계정 번호 필드의 길이가 20자에서 30자로 조정되는 경우 Account 엔터티를 포함합니다.

SolutionB, 버전 2.0(비관리형, 다른 공급업체)

계정 번호 필드의 길이가 50자로 조정되는 경우 Account 엔터티를 포함합니다.

SolutionA, 버전 1.0.1.0(비관리형, 패치)

계정 번호 필드의 길이가 35자로 조정되는 경우 Account 엔터티로 업데이트를 포함합니다.

가져오기 프로세스는 다음과 같습니다.

  1. 개발자 또는 사용자 지정자는 먼저 조직에 기본 솔루션(SolutionA 1.0)을 가져옵니다. 결과는 계정 번호 필드가 30자인 Account 엔터티입니다.

  2. SolutionB를 가져옵니다. 조직은 이제 계정 번호 필드가 50자인 Account 엔터티를 포함합니다.

  3. SolutionA 패치 1.0.1.0을 가져옵니다. 조직은 SolutionB에 의해 적용된 대로 여전히 계정 번호 필드가 50자인 Account 엔터티를 포함합니다.

  4. SolutionB가 제거됩니다. 조직은 이제 SolutionA 1.0.1.0 패치에 의해 적용된 대로 계정 번호 필드가 35자인 Account 엔터티를 포함합니다.

패치 삭제

DeleteRequest을 사용하여 패치 또는 기본(상위) 솔루션을 삭제하거나 웹 API의 경우 HTTP DELETE 메서드를 사용할 수 있습니다. 삭제 프로세스는 조직에 하나 이상의 패치가 있는 관리형 또는 비관리형 솔루션이 서로 다릅니다.

비관리형 솔루션의 경우 기본 솔루션을 제거하기 전에 먼저 만들어진 순서의 역순으로 기본 솔루션에 대한 모든 패치를 제거해야 합니다.

관리형 솔루션의 경우 간단히 기본 솔루션을 제거합니다.Dynamics 365 시스템은 기본 솔루션을 제거하기 전에 버전 번호 역순으로 패치를 자동으로 제거합니다. 단일 패치만 제거할 수도 있습니다.

솔루션 업데이트

솔루션 업데이트는 해당 솔루션의 모든 패치를 솔루션의 새 버전으로 롤업(병합)하는 것을 포함합니다. 그런 후에 해당 솔루션은 잠금에서 해제되고 다시 한 번 수정하거나(비관리형 솔루션만 해당) 내보낼 수 있습니다. 관리형 솔루션의 경우 새로 업데이트된 솔루션에서 패치를 만드는 것을 제외하고 솔루션의 추가 수정은 허용되지 않습니다. 패치를 비관리형 솔루션으로 롤업하려면 CloneAsSolutionRequest 또는 CloneAsSolution Action를 사용합니다. 솔루션을 복제하면 비관리형 솔루션의 새 버전이 만들어지고 더 높은 major.minor 버전 번호, 동일한 공유 이름 및 표시 이름이 있는 모든 패치를 통합합니다.

관리형 솔루션의 경우 약간 다르게 처리 됩니다. 먼저 비관리형 솔루션(A)을 복제하고 모든 패치를 통합한 다음 관리형 솔루션(B)으로 내보냅니다. (A) 솔루션 및 패치의 관리형 버전을 포함하는 대상 조직에서 관리형 솔루션 (B)를 가져온 다음 DeleteAndPromoteRequest 또는 DeleteAndPromote Action를 실행하여 관리형 솔루션 (A) 및 해당 패치를 버전 번호가 더 높은 업그레이드된 관리형 솔루션 (B)로 바꿉니다.

참고 항목

TechNet: 세분화된 솔루션과 패치를 사용하여 솔루션 업데이트를 간소화
솔루션 개발 계획
솔루션을 사용하여 확장 패키지 및 배포
Solution 엔터티 메시지 및 메서드
관리형 솔루션 유지 관리
AppSource를 사용하여 앱 등록

Microsoft Dynamics 365

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