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: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>

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

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

ID 정보

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

속성

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 요소의 EntryPoint 특성은 항상 Windows.FullTrustApplication입니다.

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

시각적 요소

다음은 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 패키지의 로고 특성에서 참조하게 될 아이콘입니다.

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

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

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

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

SDK 설치 경로에 따라 Windows 10 PC에서 MakePri.exe가 있는 위치는 다음과 같습니다.

  • 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 10 SDK에 포함되어 있습니다. Visual Studio가 설치되어 있는 경우 해당 Visual Studio용 개발자 명령 프롬프트를 통해 쉽게 액세스할 수 있습니다.

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

참고

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