Поделиться через


Создание компонентов пакета MSIX

В этой статье показано, как создать компоненты пакета MSIX для упаковки приложения с помощью средств командной строки (без использования Visual Studio или средства упаковки 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:RuntimeBehavior и uap10:TrustLevel. Для получения дополнительной информации и примеров см. uap10, представленный в Windows 10 версии 2004 (10.0; Сборка 19041).

Заполните элементы пакета на уровне файла

Заполните этот шаблон сведениями, описывающими пакет.

Идентификационная информация

Ниже приведен пример элемента 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 — это имя вашего приложения, которое вы резервируете в магазине для приложений, которые загружаются в магазин.

<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 следующим образом:

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

Замечание

Если ваш пакет устанавливается в системах новее Windows 10, версия 2004 (10.0; Сборка 19041), то используйте атрибут EntryPoint вместо uap10:RuntimeBehavior и uap10:TrustLevel. Для получения более подробной информации и примеров см. uap10, который был представлен в Windows 10, версии 2004 (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.png и MYAPP_44x44.targetsize-44_altform-unplated.png.

    Замечание

    В этом примере значок с именем MYAPP_44x44.png — это значок, на который вы будете ссылаться в Square44x44Logo атрибуте логотипа пакета MSIX.

  3. В файле манифеста задайте BackgroundColor для каждого значка, который вы делаете прозрачным.

  4. Перейдите к следующему подразделу, чтобы создать новый файл индекса ресурсов пакета.

Создание файла индекса ресурсов пакета (PRI) с помощью MakePri

Если вы создаете целевые ресурсы, как описано в приведенном выше разделе, или вы изменяете любые визуальные ресурсы приложения после создания пакета, вам потребуется создать новый PRI-файл.

На компьютере с Windows, в зависимости от пути установки пакета SDK, вот где находится MakePri.exe:

  • x86: C:\Program Files (x86)\Windows Kits\10\bin\<build number>\x86\makepri.exe
  • x64: C:\Program Files (x86)\Windows Kits\10\bin\<номер сборки>\x64\makepri.exe

Версия ARM этого средства отсутствует.

  1. Откройте командную строку или окно PowerShell.

  2. Измените каталог в корневую папку пакета, а затем создайте файл priconfig.xml, выполнив команду <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US.

  3. Создайте файлы resources.pri с помощью команды <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

  4. Упаковайте приложение с помощью инструкций на следующем шаге.

Тестирование приложения перед упаковкой

Вы можете развернуть распаковано приложение и протестировать его перед упаковкой или подписью. Для этого выполните командлет ниже из окна PowerShell. Обязательно передайте файл манифеста приложения, расположенный в корневом каталоге пакета со всеми другими компонентами пакета:

Add-AppxPackage –Register AppxManifest.xml

Как только это будет сделано. Приложение должно быть развернуто в системе, и вы можете протестировать его, чтобы убедиться, что все работает перед упаковкой. Чтобы обновить .exe или .dll файлы приложения, замените существующие файлы в пакете новыми, увеличьте номер версии в AppxManifest.xml, а затем снова выполните приведенную выше команду.

Упакуйте ваши компоненты в MSIX

Следующим шагом является использование MakeAppx.exe для создания пакета MSIX для приложения. Makeappx.exe входит в состав пакета SDK для Windows и если вы установили Visual Studio, его можно легко получить с помощью командной строки разработчика для Visual Studio.

См. Создание пакета или комплекта MSIX с помощью средства MakeAppx.exe

Замечание

Упакованное приложение всегда работает от имени интерактивного пользователя, и все диски, на которые устанавливается упакованное приложение, должны быть отформатированы в NTFS.