다음을 통해 공유


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)보다 이전 버전의 시스템에 설치되는 경우, EntryPointuap10:RuntimeBehavior 대신 uap10:TrustLevel 속성을 사용하십시오. 자세한 내용 및 예제는 Windows 10 버전 2004에서 도입된 uap10(10.0; 참조)을 참조하세요. 빌드 19041).

파일의 패키지 수준 요소 채우기

패키지를 설명하는 정보로 이 템플릿을 채웁니다.

ID 정보

다음은 특성에 대한 자리 표시자 텍스트가 있는 ID 요소의 예입니다. 특성을 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개의 필수 자식 요소가 있습니다. 다음은 요소에 대한 자리 표시자 텍스트가 있는 속성 노드 예제입니다. DisplayName은 스토어에 업로드된 앱에 대해 스토어에서 예약하는 애플리케이션의 이름입니다.

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

리소스

다음은 리소스 노드의 예 입니다 .

<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 요소를 구성합니다.

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

비고

패키지가 Windows 10 버전 2004(10.0; 빌드 19041)보다 이전 버전의 시스템에 설치되는 경우, EntryPointuap10:RuntimeBehavior 대신 uap10: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 패키지의 로고 속성에서 참조할 아이콘입니다.

  3. 매니페스트 파일에서 투명하게 만들고자 하는 모든 아이콘에 대해 BackgroundColor 값을 설정합니다.

  4. 다음 하위 섹션으로 계속 이동하여 새 패키지 리소스 인덱스 파일을 생성합니다.

MakePri를 사용하여 PRI(패키지 리소스 인덱스) 파일 생성

위의 섹션에 설명된 대로 대상 기반 자산을 만들거나 패키지를 만든 후 애플리케이션의 시각적 자산을 수정하는 경우 새 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 형식으로 포맷되어야 합니다.