MSIX 패키지 구성 요소 생성

이 문서에서는 명령줄 도구를 사용하여(Visual Studio 또는 MSIX 패키징 도구를 사용하지 않고) 애플리케이션을 패키징하는 MSIX 패키지 구성 요소를 생성하는 방법을 보여줍니다.

앱을 수동으로 패키징하려면 패키지 매니페스트 파일을 만들고 패키지 구성 요소를 추가한 다음, MakeAppx.exe 명령줄 도구를 실행하여 MSIX 패키지를 생성해야 합니다.

첫째, 패키지 준비

애플리케이션을 패키징하기 전에 알아 두어야 할 사항에서 이 섹션을 검토하지 않은 분들은 지금 검토합니다.

패키지 매니페스트 만들기

파일을 만들고 이름을 appxmanifest.xml로 지정한 다음, 파일에 이 XML를 추가합니다.

패키지에 필요한 요소와 특성이 포함된 기본 템플릿입니다. 다음 섹션에서는 여기에 값을 추가할 것입니다.

<?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:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
  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=""
      uap10:RuntimeBehavior="packagedClassicApp"
      uap10:TrustLevel="mediumIL">
      <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
        Square44x44Logo="" BackgroundColor="" />
    </Application>
  </Applications>
</Package>

참고 항목

패키지가 Windows 10 버전 2004(10.0; 이전 시스템에 설치되는 경우) 빌드 19041), 다음 EntryPoint 대신 uap10:RuntimeBehavioruap10:TrustLevel및 . 자세한 내용 및 예제는 Windows 10 버전 2004에서 도입된 uap10(10.0; 참조)을 참조하세요. 빌드 19041).

파일의 패키지 수준 요소를 입력합니다.

패키지를 설명하는 정보를 템플릿에 입력합니다.

ID 정보

다음은 특성의 자리 표시자 텍스트가 포함된 Identity 요소의 예입니다. ProcessorArchitecture 특성을 x64, x86, arm(즉, 32비트 ARM), arm64 또는 neutral로 설정할 수 있습니다.

<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에서 애플리케이션 이름을 예약한 경우 파트너 센터를 사용하여 이름과 게시자를 가져올 수 있습니다. 다른 시스템에 애플리케이션을 테스트용으로 로드할 계획이라면 선택한 게시자 이름이 앱을 서명하는 데 사용되는 인증서의 이름과 일치하는 경우에 한해 개발자 고유의 이름을 입력할 수 있습니다.

속성

Properties 요소는 3개의 필수 자식 요소를 갖고 있습니다. 다음은 요소의 자리 표시자 텍스트가 포함된 Properties 노드의 예입니다. DisplayName은 Microsoft Store에 업로드된 앱과 관련하여 Microsoft Store에서 예약한 애플리케이션의 이름입니다.

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

리소스

다음은 Resources 노드의 예입니다.

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

종속성

패키지를 만드는 데스크톱 앱의 Name 특성을 항상 Windows.Desktop으로 설정해야 합니다.

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

기능

하나 이상의 완전 신뢰 앱을 포함하는 패키지의 경우 아래와 같이 제한된 기능을 선언 runFullTrust 해야 합니다. 전체 세부 정보 및 완전 신뢰 앱의 정의는 앱 기능 선언에서 전체 신뢰 권한 수준을 검색합니다.)

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

애플리케이션 수준에서 요소 입력

앱을 설명하는 정보를 이 템플릿에 입력합니다.

Application 요소

패키지를 만드는 데스크톱 앱의 경우 다음과 같이 Application 요소를 구성합니다.

<Applications>
  <Application Id="MyApp" Executable="MyApp.exe"
		 uap10:RuntimeBehavior="packagedClassicApp"
     uap10:TrustLevel="mediumIL">
   </Application>
</Applications>

참고 항목

패키지가 Windows 10 버전 2004(10.0; 이전 시스템에 설치되는 경우) 빌드 19041), 다음 EntryPoint 대신 uap10:RuntimeBehavioruap10:TrustLevel및 . 자세한 내용 및 예제는 Windows 10 버전 2004에서 도입된 uap10(10.0; 참조)을 참조하세요. 빌드 19041).

시각적 요소

다음은 VisualElements 노드의 예입니다.

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

(선택 사항) 대상 기반의 플레이트되지 않은 자산 추가

대상 기반 자산은 Windows 작업 표시줄, 작업 보기, ALT+TAB, 스냅 어시스트 및 시작 타일의 오른쪽 아래 모서리에 표시되는 아이콘 및 타일을 위한 것입니다. 자세한 내용은 여기서 확인할 수 있습니다.

  1. 올바른 44x44 이미지를 가져와서 이미지가 들어 있는 폴더(즉, 자산 폴더)에 복사합니다.

  2. 각 44x44 이미지에 대해 동일한 폴더에 복사본을 만들고 파일 이름에 .targetsize-44_altform-unplated를 추가합니다. 각 아이콘에는 각각 특정 방식으로 이름이 지정된 두 개의 복사본이 있어야 합니다. 예를 들어 프로세스를 완료한 후에는 자산 폴더에 MYAPP_44x44.pngMYAPP_44x44.targetsize-44_altform-unplated.png 파일이 포함될 수 있습니다.

    참고 항목

    이 예제에서 MYAPP_44x44.png라는 아이콘은 MSIX 패키지의 Square44x44Logo 로고 특성에서 참조하게 될 아이콘입니다.

  3. 매니페스트 파일에서, 만들고 있는 모든 아이콘의 BackgroundColor를 투명으로 설정합니다.

  4. 다음 하위 섹션을 계속 진행하여 새 Package Resource Index 파일을 생성합니다.

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

위 섹션에서 설명한 대로 대상 기반 자산을 만들거나, 패키지를 만든 후 애플리케이션의 시각적 자산을 수정하는 경우 새 PRI 파일을 생성해야 합니다.

SDK의 설치 경로에 따라 MakePri.exe가 Windows PC에 있는 위치입니다.

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

이 도구의 ARM 버전은 없습니다.

  1. 명령 프롬프트 또는 PowerShell 창을 엽니다.

  2. 디렉터리를 패키지의 루트 폴더로 변경한 다음, <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US 명령을 실행하여 priconfig.xml 파일을 만듭니다.

  3. <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml 명령을 사용하여 resources.pri 파일을 만듭니다.

    예를 들어 애플리케이션에 대한 명령은 <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml 형식입니다.

  4. 다음 단계의 지침에 따라 애플리케이션을 패키징합니다.

패키징 전에 애플리케이션 테스트

패키지되지 않은 애플리케이션을 배포하고 패키징 또는 서명하기 전에 테스트할 수 있습니다. 이렇게 하려면 PowerShell 창에서 아래 cmdlet을 실행합니다. 패키지 디렉터리의 루트에 있는 다음과 같은 애플리케이션 매니페스트 파일을 다른 모든 패키지 구성 요소와 함께 전달해야 합니다.

Add-AppxPackage –Register AppxManifest.xml

이 작업을 마치면 앱이 시스템에 배포되며, 앱을 패키징하기 전에 테스트하여 모든 것이 정상적으로 작동하는지 확인할 수 있습니다. 앱의 .exe 또는 .dll 파일을 업데이트하려면 패키지의 기존 파일을 새 파일로 바꾸고, AppxManifest.xml에서 버전 번호를 높인 다음, 위의 명령을 다시 실행합니다.

MSIX에 구성 요소 패키징

다음 단계는 MakeAppx.exe를 사용하여 애플리케이션의 MSIX 패키지를 생성하는 것입니다. Makeappx.exe는 Windows SDK에 포함되어 있으며 Visual Studio가 설치된 경우 Visual Studio용 개발자 명령 프롬프트를 통해 쉽게 액세스할 수 있습니다.

MakeAppx.exe 도구를 사용하여 MSIX 패키지 또는 번들 만들기를 참조하세요.

참고 항목

패키지된 애플리케이션은 항상 대화형 사용자로 실행되며, 패키지된 애플리케이션을 설치할 드라이브는 NTFS 형식으로 포맷해야 합니다.