Share via


AddPackageDependency 함수(appmodel.h)

지정한 옵션과 함께 TryCreatePackageDependency 메서드를 사용하여 이전에 만든 프레임워크 패키지 종속성에 대한 런타임 참조를 추가합니다. 이 메서드가 성공적으로 반환되면 앱이 형식을 활성화하고 프레임워크 패키지의 콘텐츠를 사용할 수 있습니다.

구문

HRESULT AddPackageDependency(
  PCWSTR                      packageDependencyId,
  INT32                       rank,
  AddPackageDependencyOptions options,
  PACKAGEDEPENDENCY_CONTEXT   *packageDependencyContext,
  PWSTR                       *packageFullName
);

매개 변수

packageDependencyId

형식: PCWSTR

확인되고 호출 프로세스의 패키지 그래프에 추가할 패키지 종속성의 ID입니다. 이 매개 변수는 호출 사용자 또는 시스템(CreatePackageDependencyOptions_ScopeIsSystem 옵션을 통해)에 대해 TryCreatePackageDependency 함수를 사용하여 정의된 패키지 종속성과 일치해야 합니다. 그렇지 않으면 오류가 반환됩니다.

rank

형식: INT32

확인된 패키지를 호출자의 패키지 그래프에 추가하는 데 사용할 순위입니다. 자세한 내용은 설명을 참조하세요.

options

형식: AddPackageDependencyOptions

패키지 종속성을 추가할 때 적용할 옵션입니다.

packageDependencyContext

형식: PACKAGEDEPENDENCY_CONTEXT*

추가된 패키지 종속성의 핸들입니다. 이 핸들은 RemovePackageDependency에 전달될 때까지 유효합니다.

packageFullName

형식: PCWSTR*

이 메서드가 반환될 때 에는 종속성이 확인된 패키지의 전체 이름을 지정하는 null로 종료된 유니코드 문자열에 대한 포인터의 주소가 포함됩니다. 호출자는 HeapFree를 호출하여 더 이상 필요하지 않으면 이 리소스를 해제할 책임이 있습니다.

반환 값

형식: HRESULT

함수가 성공하면 ERROR_SUCCESS 반환합니다. 그렇지 않으면 함수는 오류 코드를 반환합니다. 가능한 오류 코드에는 다음이 포함됩니다.

반환 코드 설명
E_INVALIDARG packageDependencyId 또는 packageDependencyContext 매개 변수는 입력 시 NULL입니다.

설명

이 메서드를 호출하면 프레임워크 패키지 종속성이 시스템의 특정 패키지로 확인됩니다. 또한 프레임워크 패키지가 현재 사용 중임을 OS에 알리고 모든 버전 업데이트를 병렬 방식으로 처리합니다(앱이 사용이 완료될 때까지 이전 버전 제거 또는 서비스 효과적으로 지연). 패키지 확인은 사용자와 관련이 있으며 시스템의 다른 사용자에 대해 서로 다른 값을 반환할 수 있습니다.

성공한 각 AddPackageDependency 호출은 이미 있는 경우에도 확인된 패키지를 호출 프로세스의 패키지 그래프에 추가합니다. API에 의해 적용된 중복 검색 또는 필터링이 없습니다(즉, 패키지의 여러 참조가 유해하지 않음). 해결이 완료되면 해당 사용자의 모든 프로세스에서 마지막 참조가 RemovePackageDependency 를 통해 제거되거나 프로세스가 종료될 때까지 패키지 종속성이 해당 사용자에 대해 해결된 상태로 유지됩니다.

이 메서드가 성공적으로 반환되면 앱이 형식을 활성화하고 RemovePackageDependency 가 호출될 때까지 프레임워크 패키지의 콘텐츠를 사용할 수 있습니다.

AddPackageDependency 호출과 동일한 순위를 가진 패키지 그래프에 여러 패키지가 있는 경우 확인된 패키지는 기본적으로 동일한 순위의 다른 패키지 다음에 추가됩니다. 동일한 순위의 다른 항목 앞에 패키지를 추가하려면 options 매개 변수에 대한 AddPackageDependencyOptions_PrependIfRankCollision 지정합니다.

자세한 내용은 동적 종속성 API를 사용하여 런타임에 MSIX 패키지를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11(10.0.22000.0에 도입됨)
머리글 appmodel.h

추가 정보

RemovePackageDependency

TryCreatePackageDependency

동적 종속성 API를 사용하여 런타임에 MSIX 패키지 참조