MSIX 패키지 구성 요소 생성Generating MSIX package components

이 문서에서는 명령줄 도구를 사용하여(Visual Studio 또는 MSIX 패키징 도구를 사용하지 않고) 애플리케이션을 패키징하는 MSIX 패키지 구성 요소를 생성하는 방법을 보여줍니다.This article shows you how to generate MSIX package components for packaging your application using command line tools (without using Visual Studio or the MSIX Packaging Tool).

앱을 수동으로 패키징하려면 패키지 매니페스트 파일을 만들고 패키지 구성 요소를 추가한 다음, MakeAppx.exe 명령줄 도구를 실행하여 MSIX 패키지를 생성해야 합니다.To manually package your app, you need to create a package manifest file, add your package components and then run the MakeAppx.exe command line tool to generate an MSIX package.

첫째, 패키지 준비First, prepare to package

애플리케이션을 패키징하기 전에 알아 두어야 할 사항에서 이 섹션을 검토하지 않은 분들은 지금 검토합니다.If you haven't yet, review this section on what you need to know before packaging your application.

패키지 매니페스트 만들기Create a package manifest

파일을 만들고 이름을 appxmanifest.xml로 지정한 다음, 파일에 이 XML를 추가합니다.Create a file, name it appxmanifest.xml, and then add this XML to it.

패키지에 필요한 요소와 특성이 포함된 기본 템플릿입니다.It's a basic template that contains the elements and attributes that your package needs. 다음 섹션에서는 여기에 값을 추가할 것입니다.We'll add values to these in the next section.

<?xml version="1.0" encoding="utf-8"?>
<Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
    <Properties>
       <DisplayName></DisplayName>
       <PublisherDisplayName></PublisherDisplayName>
             <Description></Description>
      <Logo></Logo>
    </Properties>
    <Resources>
      <Resource Language="" />
    </Resources>
      <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
      </Dependencies>
      <Capabilities>
        <rescap:Capability Name="runFullTrust"/>
      </Capabilities>
    <Applications>
      <Application Id="" Executable="" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements DisplayName="" Description=""   Square150x150Logo=""
                   Square44x44Logo=""   BackgroundColor="" />
      </Application>
     </Applications>
  </Package>

파일의 패키지 수준 요소를 입력합니다.Fill in the package-level elements of your file

패키지를 설명하는 정보를 템플릿에 입력합니다.Fill in this template with information that describes your package.

ID 정보Identity information

다음은 특성의 자리 표시자 텍스트가 포함된 Identity 요소의 예입니다.Here's an example Identity element with placeholder text for the attributes. ProcessorArchitecture 특성을 x64 또는 x86으로 설정할 수 있습니다.You can set the ProcessorArchitecture attribute to x64 or x86.

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
                ProcessorArchitecture="x64">

참고

Microsoft Store에서 애플리케이션 이름을 예약한 경우 파트너 센터를 사용하여 이름과 게시자를 가져올 수 있습니다.If you've reserved your application name in the Microsoft Store, you can obtain the Name and Publisher by using Partner Center. 다른 시스템에 애플리케이션을 테스트용으로 로드할 계획이라면 선택한 게시자 이름이 앱을 서명하는 데 사용되는 인증서의 이름과 일치하는 경우에 한해 개발자 고유의 이름을 입력할 수 있습니다.If you plan to sideload your application onto other systems, you can provide your own names for these as long as the publisher name that you choose matches the name on the certificate you use to sign your app.

속성Properties

Properties 요소는 3개의 필수 자식 요소를 갖고 있습니다.The Properties element has 3 required child elements. 다음은 요소의 자리 표시자 텍스트가 포함된 Properties 노드의 예입니다.Here is an example Properties node with placeholder text for the elements. DisplayName은 Microsoft Store에 업로드된 앱과 관련하여 Microsoft Store에서 예약한 애플리케이션의 이름입니다.The DisplayName is the name of your application that you reserve in the Store, for apps which are uploaded to the Store.

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

리소스Resources

다음은 Resources 노드의 예입니다.Here is an example Resources node.

<Resources>
  <Resource Language="en-us" />
</Resources>

종속성Dependencies

패키지를 만드는 데스크톱 앱의 Name 특성을 항상 Windows.Desktop으로 설정해야 합니다.For desktop apps that you create a package for, always set the Name attribute to Windows.Desktop.

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

기능Capabilities

패키지를 만드는 데스크톱 앱에는 runFullTrust 기능을 추가해야 합니다.For desktop apps that you create a package for, you'll have to add the runFullTrust capability.

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

애플리케이션 수준에서 요소 입력Fill in the application-level elements

앱을 설명하는 정보를 이 템플릿에 입력합니다.Fill in this template with information that describes your app.

Application 요소Application element

패키지를 만드는 데스크톱 앱에서 Application 요소의 EntryPoint 특성은 항상 Windows.FullTrustApplication입니다.For desktop apps that you create a package for, the EntryPoint attribute of the Application element is always Windows.FullTrustApplication.

<Applications>
  <Application Id="MyApp"     
        Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication">
   </Application>
</Applications>

시각적 요소Visual elements

다음은 VisualElements 노드의 예입니다.Here is an example VisualElements node.

<uap:VisualElements
    BackgroundColor="#464646"
    DisplayName="My App"
    Square150x150Logo="images\icon.png"
    Square44x44Logo="images\small_icon.png"
    Description="A useful description" />

(선택 사항) 대상 기반의 플레이트되지 않은 자산 추가(Optional) Add Target-based unplated assets

대상 기반 자산은 아이콘 및 타일을 위한 것으로 Windows 작업 표시줄, 작업 보기, Alt + Tab, 끌기 도우미 및 시작 타일의 오른쪽 아래 모서리에 표시됩니다.Target-based assets are for icons and tiles that appear on the Windows taskbar, task view, ALT+TAB, snap-assist, and the lower-right corner of Start tiles. 자세한 내용은 여기서 확인할 수 있습니다.You can read more about them here.

  1. 올바른 44x44 이미지를 가져와서 이미지가 들어 있는 폴더(즉, 자산 폴더)에 복사합니다.Obtain the correct 44x44 images and then copy them into the folder that contains your images (i.e., Assets).

  2. 각 44x44 이미지의 복사본을 동일한 폴더에서 만들고 파일 이름에 .targetsize-44_altform-unplated를 추가합니다.For each 44x44 image, create a copy in the same folder and append .targetsize-44_altform-unplated to the file name. 아이콘마다 각각 특정 방식으로 이름이 지정된 두 복사본이 있어야 합니다.You should have two copies of each icon, each named in a specific way. 예를 들어 프로세스를 완료한 후에는 자산 폴더에 MYAPP_44x44.pngMYAPP_44x44.targetsize-44_altform-unplated.png 파일이 포함될 수 있습니다.For example, after completing the process, your assets folder might contain MYAPP_44x44.png and MYAPP_44x44.targetsize-44_altform-unplated.png.

    참고

    이 예제에서 MYAPP_44x44.png라는 아이콘은 MSIX 패키지의 Square44x44Logo 로고 특성에서 참조하게 될 아이콘입니다.In this example, the icon named MYAPP_44x44.png is the icon that you'll reference in the Square44x44Logo logo attribute of your MSIX package.

  3. 매니페스트 파일에서, 만들고 있는 모든 아이콘의 BackgroundColor를 투명으로 설정합니다.In the manifest file, set the BackgroundColor for every icon you are making transparent.

  4. 다음 하위 섹션을 계속 진행하여 새 Package Resource Index 파일을 생성합니다.Continue to the next subsection to generate a new Package Resource Index file.

MakePri를 사용하여 PRI(Package Resource Index) 파일 생성Generate a Package Resource Index (PRI) file using MakePri

위 섹션에서 설명한 대로 대상 기반 자산을 만들거나, 패키지를 만든 후 애플리케이션의 시각적 자산을 수정하는 경우 새 PRI 파일을 생성해야 합니다.If you create target-based assets as described in the section above, or you modify any of the visual assets of your application after you've created the package, you'll have to generate a new PRI file.

SDK 설치 경로에 따라 Windows 10 PC에서 MakePri.exe가 있는 위치는 다음과 같습니다.Based on your installation path of the SDK, this is where MakePri.exe is on your Windows 10 PC:

  • x86: C:\Program Files (x86)\Windows Kits\10\bin\<빌드 번호>\x86\makepri.exex86: C:\Program Files (x86)\Windows Kits\10\bin\<build number>\x86\makepri.exe
  • x64: C:\Program Files (x86)\Windows Kits\10\bin\<빌드 번호>\x64\makepri.exex64: C:\Program Files (x86)\Windows Kits\10\bin\<build number>\x64\makepri.exe

이 도구의 ARM 버전은 없습니다.There is no ARM version of this tool.

  1. 명령 프롬프트 또는 PowerShell 창을 엽니다.Open a Command Prompt or PowerShell window.

  2. 디렉터리를 패키지의 루트 폴더로 변경한 다음, <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US 명령을 실행하여 priconfig.xml 파일을 만듭니다.Change directory to the package's root folder, and then create a priconfig.xml file by running the command <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US.

  3. <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml 명령을 사용하여 resources.pri 파일을 만듭니다.Create the resources.pri file(s) by using the command <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    예를 들어 애플리케이션에 대한 명령은 <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml 형식입니다.For example, the command for your application might look like this: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. 다음 단계의 지침에 따라 애플리케이션을 패키징합니다.Package your application by using the instructions in the next step.

패키징 전에 애플리케이션 테스트Test your application before packaging

패키지를 배포하거나 서명하기 전에 패키징되지 않은 애플리케이션을 배포하고 테스트할 수 있습니다.You can deploy your non-packaged application and test it before packaging or signing. 이렇게 하려면 PowerShell 창에서 아래 cmdlet을 실행합니다.To do so, run the cmdlet below from a PowerShell window. 패키지 디렉터리의 루트에 있는 다음과 같은 애플리케이션 매니페스트 파일을 다른 모든 패키지 구성 요소와 함께 전달해야 합니다.Make sure to pass in your application's manifest file located in the root of your package directory with all your other package components:

Add-AppxPackage –Register AppxManifest.xml

이 작업을 마치면Once this is done. 앱이 시스템에 배포되며, 앱을 패키징하기 전에 테스트하여 모든 것이 정상적으로 작동하는지 확인할 수 있습니다.Your app should be deployed on the system and you can test it to make sure everything works before packaging. 앱의 .exe 또는 .dll 파일을 업데이트하려면 패키지의 기존 파일을 새 파일로 바꾸고, AppxManifest.xml에서 버전 번호를 높인 다음, 위의 명령을 다시 실행합니다.To update your app's .exe or .dll files, replace the existing files in your package with the new ones, increase the version number in AppxManifest.xml, and then run the above command again.

MSIX에 구성 요소 패키징Package your components into an MSIX

다음 단계는 MakeAppx.exe를 사용하여 애플리케이션의 MSIX 패키지를 생성하는 것입니다.The next step is to use MakeAppx.exe to generate an MSIX package for your application. Makeappx.exe는 Windows 10 SDK에 포함되어 있습니다. Visual Studio가 설치되어 있는 경우 해당 Visual Studio용 개발자 명령 프롬프트를 통해 쉽게 액세스할 수 있습니다.Makeappx.exe is included with the Windows 10 SDK, and if you have Visual Studio installed, it can be easily accessed through the Developer Command Prompt for Visual Studio.

MakeAppx.exe 도구를 사용하여 MSIX 패키지 또는 번들 만들기를 참조하세요.See Create an MSIX package or bundle with the MakeAppx.exe tool

참고

패키징된 애플리케이션은 항상 대화형 사용자로서 실행되며, 패키지 애플리케이션을 설치할 드라이브를 NTFS 형식으로 포맷해야 합니다.A packaged application always runs as an interactive user, and any drive that you install your packaged application on to must be formatted to NTFS format.