플랫 번들 앱 패키지Flat bundle app packages

중요

스토어에 앱을 제출 하려는 경우 플랫 번들을 사용 하려면 Windows 개발자 지원 에 문의 해야 합니다.If you intend to submit your app to the Store, you need to contact Windows developer support for approval to use flat bundles.

플랫 번들은 앱의 패키지 파일을 번들로 묶는 향상 된 방법입니다.Flat bundles are an improved way to bundle your app’s package files. 일반적인 Windows 앱 번들 파일은 번들에 앱 패키지 파일이 포함 되어야 하는 다중 수준 패키징 구조를 사용 합니다. 플랫 번들은 앱 패키지 파일만 참조 하 여 앱 번들 외부에 있을 수 있도록 하 여이 필요성을 제거 합니다.A typical Windows app bundle file uses a multi-level packaging structure in which the app package files need to be contained within the bundle, flat bundles remove this need by only referencing the app package files, allowing them to be outside of the app bundle. 앱 패키지 파일은 번들에 더 이상 포함 되어 있지 않으므로 병렬 처리 될 수 있으므로 업로드 시간이 줄어들고, 게시 속도가 빨라지고 (각 앱 패키지 파일이 동시에 처리 될 수 있으므로), 궁극적으로 개발 반복 속도가 빨라집니다.Since the app package files are no longer contained in the bundle, they can be parallel processed, which results in reduced uploading time, faster publishing (since each app package file can be processed at the same time), and ultimately faster development iterations.

플랫 번들 다이어그램

플랫 번들의 또 다른 혜택은 더 작은 패키지를 만들어야 한다는 것입니다.Another benefit of flat bundles is the need to create less packages. 앱 패키지 파일은 참조 되기 때문에 두 버전에서 패키지를 변경 하지 않은 경우 두 버전의 앱이 동일한 패키지 파일을 참조할 수 있습니다.Since app package files are only referenced, two versions of the app can reference the same package file if the package did not change across the two versions. 그러면 앱의 다음 버전에 대 한 패키지를 빌드할 때 변경 된 앱 패키지만 만들 수 있습니다.This allows you to have to create only the app packages that have changed when building the packages for the next version of your app. 기본적으로 flat 번들은 같은 폴더 내에서 앱 패키지 파일을 참조 합니다.By default, the flat bundles will reference app package files within the same folder as itself. 그러나이 참조는 다른 경로 (상대 경로, 네트워크 공유 및 http 위치)로 변경할 수 있습니다.However, this reference can be changed to other paths (relative paths, network shares, and http locations). 이렇게 하려면 플랫 번들을 만드는 동안 BundleManifest 를 직접 제공 해야 합니다.To do this, you must directly provide a BundleManifest during the flat bundle creation.

플랫 번들을 만드는 방법How to create a flat bundle

플랫 번들은 MakeAppx.exe 도구를 사용 하거나 패키지 레이아웃을 사용 하 여 번들의 구조를 정의 하 여 만들 수 있습니다.A flat bundle can be created using the MakeAppx.exe tool, or by using the packaging layout to define the structure of your bundle.

MakeAppx.exe 사용Using MakeAppx.exe

MakeAppx.exe를 사용 하 여 플랫 번들을 만들려면 일반적인 방법으로 "MakeAppx.exe 번들" 명령을 사용 하 고,/fb 스위치를 사용 하 여 플랫 앱 번들 파일을 생성 합니다 .이 파일은 앱 패키지 파일만 참조 하 고 실제 페이로드는 포함 하지 않으므로 매우 작아야 합니다.To create a flat bundle using MakeAppx.exe, use the “MakeAppx.exe bundle” command as usual but with the /fb switch to generate the flat app bundle file (which will be extremely small since it only references the app package files and does not contain any actual payloads).

명령 구문의 예는 다음과 같습니다.Here's an example of the command syntax:

MakeAppx bundle [options] /d <content directory> /fb /p <output flat bundle name>

MakeAppx.exe 사용에 대 한 자세한 내용은 MakeAppx.exe 도구를 사용 하 여 앱 패키지 만들기를 참조 하세요.For more information on using MakeAppx.exe, see Create an app package with the MakeAppx.exe tool.

패키징 레이아웃 사용Using packaging layout

또는 압축 레이아웃을 사용 하 여 플랫 번들을 만들 수 있습니다.Alternatively, you can create a flat bundle using the packing layout. 이렇게 하려면 앱 번들 매니페스트의 Packagefamily 요소에서 FlatBundle 특성을 true 로 설정 합니다.To do this, set the FlatBundle attribute to true in the PackageFamily element of your app bundle manifest. 패키징 레이아웃에 대 한 자세한 내용은 패키징 레이아웃을 사용 하 여 패키지 만들기를 참조 하세요.To learn more about the packaging layout, see Package creation with the packaging layout.

플랫 번들을 배포 하는 방법How to deploy a flat bundle

플랫 번들을 배포 하기 전에 앱 번들 외에도 각 앱 패키지는 동일한 인증서를 사용 하 여 서명 되어야 합니다.Before a flat bundle can be deployed, each of the app packages (in addition to the app bundle) must be signed with the same certificate. 이는 모든 앱 패키지 파일 (.appx/. m i f)이 이제 독립적인 파일이 며 더 이상 앱 번들 (.appxbundle/. m n n x s) 파일에 포함 되지 않기 때문입니다.This is because all of the app package files (.appx/.msix) are now independent files and are no longer contained within the app bundle (.appxbundle/.msixbundle) file.

패키지가 서명 된 후 다음 옵션 중 하나를 통해 앱을 설치할 수 있습니다.After the packages are signed, you can install the app via one of these options:

  • 앱 설치 관리자를 사용 하 여 설치할 앱 번들 파일을 두 번 클릭 합니다.Double click the app bundle file to install with App Installer.
  • PowerShell에서 add-appxpackage cmdlet 을 사용 하 여 앱 번들 파일을 가리킵니다. 앱 패키지는 앱 번들로 예상 되는 위치를 가정 합니다.Use the Add-AppxPackage cmdlet in PowerShell and point to the app bundle file (assuming app packages are where the app bundle expects them to be).

플랫 번들의 개별 .appx/. m p 6 패키지는 단독으로 배포할 수 없습니다.You cannot deploy the individual .appx/.msix packages of a flat bundle by themselves. 이러한 사용자는 .appxbundle/. a n x 번들을 통해 배포 되어야 합니다.They must be deployed through the .appxbundle/.msixbundle. 그러나 초기 설치 후에 플랫 번들의 개별 .appx/. m i d 패키지를 업데이트할 수 있습니다.However, you can update individual .appx/.msix packages of a flat bundle after the initial install. 개별 .appx/. m i 6 패키지를 업데이트 하는 경우에는 플랫 번들의 매니페스트도 업데이트 해야 합니다.If you do update individual .appx/.msix package, you will also need to update the flat bundle's manifest.

예를 들어, v1 플랫 번들이. a n x번들, x86. msix, x64. msix으로 구성 된 경우 v2 번들에 자산 패키지만 변경 된 것이 있다는 것을 알게 되 면,. msixbundle 및 asset. msix을 빌드하여 업데이트를 설치할 수 있습니다.For example, if your v1 flat bundle is composed of an .msixbundle, an x86 .msix, an x64 .msix, and an asset .msix, and you know that your v2 bundle only has changes to the asset package, then you only need to build the .msixbundle and the asset .msix to be able to install the update. 번들은 해당. m 6 패키지의 모든 버전을 추적 하기 때문에 v2 용. msixbundle을 빌드해야 합니다.You must build the .msixbundle for v2 because the bundle keeps track of all the versions of its .msix packages. 자산의 버전을 bumping 하 여이 새 참조가 포함 된 새. msixbundle이 필요 합니다.By bumping the version of the asset .msix to v2, you need a new .msixbundle that has this new reference. V2. msixbundle에는 v1 x86. msix 및 x64. msix에 대 한 참조가 포함 될 수 있습니다. 플랫 번들의. m 6 패키지는 동일한 버전 번호를 가질 필요가 없습니다.The v2 .msixbundle can contain references to the v1 x86 .msix and x64 .msix; the .msix packages of a flat bundle does not need to have the same version number.