선택형 패키지 및 관련 세트 제작

선택형 패키지에는 주 패키지에 통합할 수 있는 콘텐츠가 포함되어 있습니다. 이러한 항목은 다운로드 가능한 콘텐츠 (DLC)에서 크기가 제한은 큰 앱을 분할 하거나 원래 앱과는 별도로 추가 콘텐츠를 전달 하는 데 유용 합니다. 선택적 패키지에 대 한 자세한 내용은 블로그 게시물: 선택적 패키지를 사용 하 여 응용 프로그램 확장을 참조 하세요.

관련 집합은 선택적 패키지의 확장입니다. 관련 집합을 사용 하면 기본 및 선택적 패키지에서 엄격한 버전 집합을 적용할 수 있습니다. 관련 집합은 저장소 외부에 배포 되는 경우 주 앱과 다른 게시자를 가질 수 있습니다. 관련 집합에 대 한 자세한 내용은 블로그 게시물: 관련 집합을 만드는 도구를참조 하세요.

선택적 패키지 및 관련 집합은 모두 주 앱의 MSIX 컨테이너 내에서 실행 됩니다.

사전 요구 사항

  • Visual Studio 2019 또는 Visual Studio 2017 (버전 15.1 이상)
  • Windows 10, 버전 1703 이상
  • Windows 10, 버전 1703 SDK 이상

최신 개발 도구를 모두 얻으려면 Windows 10 다운로드 및 도구를 참조 하세요.

참고

선택적 패키지 및/또는 관련 집합을 사용 하는 앱을 Microsoft Store 제출 하려면 권한이 필요 합니다. 선택적 패키지 및 관련 집합은 저장소에 제출 되지 않은 경우 파트너 센터 권한이 없는 LOB (기간 업무) 또는 엔터프라이즈 앱에 사용할 수 있습니다. 선택적 패키지 및 관련 집합을 사용 하는 앱을 제출할 수 있는 권한을 얻으려면 Windows 개발자 지원 을 참조 하세요.

코드 샘플

이 문서를 읽는 동안 선택적 패키지와 관련 집합이 Visual Studio 내에서 작동 하는 방식을 이해 하는 데 GitHub의 선택적 패키지 코드 샘플과 함께 수행 하는 것이 좋습니다.

선택적 패키지

Visual Studio에서 선택적 패키지를 만들려면 다음을 수행 해야 합니다.

  1. 앱의 대상 플랫폼 최소 버전이 10.0.15063.0 이상으로 설정 되어 있는지 확인 합니다.
  2. 주 패키지 프로젝트에서 파일을 엽니다 . "패키징" 탭으로 이동 하 여 "_" 문자 앞에 있는 모든 항목의 패키지 패밀리 이름을적어 둡니다.
  3. 선택적 패키지 프로젝트에서를 마우스 오른쪽 단추로 클릭 하 고 XML (텍스트) 편집기로 열기를 선택 합니다.
  4. 파일에서 <Dependencies> 요소를 찾습니다. 다음을 추가 하 고를 [MainPackageDependency] 2 단계의 [MainPackageDependency] 으로 바꿉니다. 이렇게 하면 선택적 패키지가주 패키지에 종속 되도록 지정 됩니다.
    <uap3:MainPackageDependency Name="[MainPackageDependency]"/>
    

참고

다른 게시자에서 선택적 패키지를 만들려는 경우 주 응용 프로그램의 게시자를 지정 해야 합니다 (다른 게시자의 경우). Like < uap4: MainPackageDependency Name = "Main_app" Publisher = "CN = Contoso ..."/ > . 저장소에 게시 하는 경우에는이 작업을 수행할 수 없습니다.

1 ~ 4 단계에서 패키지 종속성을 설정한 후에는 평소 대로 계속 해 서 개발할 수 있습니다. 자세한 내용은 블로그 게시물: 첫 번째 선택적 패키지 빌드를 참조 하세요.

선택적 패키지를 배포할 때마다 주 패키지를 다시 배포 하도록 Visual Studio를 구성할 수 있습니다. Visual Studio에서 빌드 종속성을 설정 하려면 다음을 수행 해야 합니다.

  1. 선택적 패키지 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 종속성 Project 빌드 종속성 ... 을 선택 합니다.
  2. 주 패키지 프로젝트를 확인 하 고 "확인"을 선택 합니다.

이제는 F5 키를 입력 하거나 선택적 패키지 프로젝트를 빌드할 때마다 먼저 주 패키지 프로젝트를 Visual Studio 합니다. 이렇게 하면 기본 프로젝트와 선택적 프로젝트가 동기화 됩니다.

관련 집합은 주 패키지와 주 패키지의 .appxbundle 또는. a n x 번들 파일에 지정 된 메타 데이터를 통해 긴밀 하 게 결합 된 선택적 패키지로 구성 됩니다. 이 메타 데이터는 주 패키지를 선택적 패키지 (.appxbundle 파일 + 버전의 이름 사용) 및 주 패키지에 대 한 선택적 패키지 (버전 독립적 이름 사용)에 연결 합니다. Visual Studio를 사용 하면 파일에 올바른 메타 데이터를 가져올 수 있습니다.

관련 집합의 패키지에 대 한 버전 관리는 관련 된 모든 패키지 (주 패키지의 버전에서 지정)가 설치 될 때까지 최신 버전의 패키지를 사용 하도록 허용 하지 않는 방식으로 동기화 됩니다. 패키지는 독립적으로 처리 되지만 집합에 지정 된 패키지는 모두 업데이트 될 때까지 사용 되지 않을 수 있습니다. 관련 집합에 대 한 자세한 내용은 블로그 게시물: 관련 집합을 만드는 도구를참조 하세요.

응용 프로그램의 관련 집합에 대 한 솔루션을 구성 하려면 다음 단계를 사용 합니다.

  1. 주 패키지 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 새 항목 추가 ...를 선택 합니다.
  2. 창에서 ".txt"에 대해 설치 된 템플릿을 검색 하 고 새 텍스트 파일을 추가 합니다.

    중요

    새 텍스트 파일의 이름은로 지정 해야 Bundle.Mapping.txt 합니다.

  3. 파일에서 Bundle.Mapping.txt "[OptionalProjects]" 문자열을 입력 한 다음 선택적 패키지 프로젝트에 대 한 상대 경로를 입력 합니다. 예제 Bundle.Mapping.txt 파일은 다음과 같습니다.
    [OptionalProjects]
    "..\ActivatableOptionalPackage1\ActivatableOptionalPackage1.vcxproj"
    "..\ActivatableOptionalPackage2\ActivatableOptionalPackage2.vcxproj"
    

이러한 방식으로 솔루션을 구성 하는 경우 Visual Studio는 관련 집합에 필요한 모든 메타 데이터와 함께 주 패키지에 대 한 AppxBundleManifest.xml 라는 번들 매니페스트 를 만듭니다.

선택적 패키지와 마찬가지로 Bundle.Mapping.txt 관련 집합에 대 한 파일은 Windows 10 버전 1703 이상 에서만 작동 합니다. 또한 앱의 대상 플랫폼 최소 버전을 10.0.15063.0 이상으로 설정 해야 합니다.

선택적 패키지 제거

사용자는 설정 앱으로 이동 하 여 선택적 패키지를 제거할 수 있습니다. 마찬가지로 개발자는 RemoveOptionalPackageAsync 를 사용 하 여 선택적 패키지 목록을 제거할 수 있습니다.

PackageCatalog catalog = PackageCatalog.OpenForCurrentPackage();
List<string> optionalList = new List<string>();
optionalList.Add("FabrikamAgeAnalysis_kwpnjs8c36mz0");
    
// Warn user that application will be restarted. 
var result = await catalog.RemoveOptionalPackagesAsync(optionalList);
if (result.ExtendedError != null)
{
    throw removalResult.ExtendedError;
}

참고

관련 된 설정의 경우 플랫폼은 제거를 완료 하기 위해 주 응용 프로그램을 다시 시작 해야 합니다. 제거 되는 패키지에서 로드 된 콘텐츠가 앱에 있는 상황을 방지 하기 위해 제거를 완료 해야 합니다. 앱이 API를 호출 하기 전에 응용 프로그램을 다시 시작 해야 한다는 사실을 사용자에 게 알려야 합니다.

선택적 패키지가 콘텐츠 인 경우 개발자가 선택적 패키지를 제거 하기 전에 응용 프로그램에서 제거 하려는 패키지가 ' 사용 안 함 ' 임을 플랫폼에 명시적으로 알려야 합니다. 이를 통해 개발자는 다시 시작 하지 않고 패키지를 제거할 수도 있습니다.

알려진 문제

관련 된 set 옵션 프로젝트의 디버깅은 현재 Visual Studio에서 지원 되지 않습니다. 이 문제를 해결 하려면 활성화 (Ctrl + F5)를 배포 및 시작 하 고 디버거를 프로세스에 수동으로 연결할 수 있습니다. 디버거를 연결 하려면 Visual Studio의 "디버그" 메뉴로 이동 하 여 "프로세스에 연결 ..."을 선택 하 고 디버거를 주 앱 프로세스에 연결 합니다.