Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Если вы планируете отправить приложение в Магазин, обратитесь в службу поддержки разработчика Windows и получите утверждение об использовании пакетов ресурсов.
Пакеты активов — это тип пакета, который служит центральным хранилищем общих файлов приложения, эффективно устраняя необходимость дублирования файлов в его архитектуре. Пакеты ресурсов похожи на пакеты ресурсов, которые предназначены для хранения статического содержимого, необходимого для запуска приложения, но отличаются в том, что все пакеты ресурсов всегда загружаются независимо от системной архитектуры, языка или масштабирования дисплея пользователя.
Так как пакеты ресурсов содержат файлы, не зависящие от архитектуры, языка и масштаба, использование пакетов ресурсов приводит к снижению общего размера упакованного приложения (так как эти файлы больше не дублируются), что помогает эффективно управлять местом на диске для локальной разработки больших приложений и в целом управлять пакетами вашего приложения.
Как пакеты ресурсов влияют на публикацию?
Наиболее очевидным преимуществом пакетов ресурсов является уменьшение размера упакованных приложений. Небольшие пакеты приложений ускоряют процесс публикации приложения, позволяя магазину обрабатывать меньшее количество файлов; однако это не самое важное преимущество ресурсных пакетов.
При создании пакета активов можно указать, должен ли пакет иметь возможность выполняться. Так как пакеты ресурсов должны содержать только не зависящие от архитектуры файлы, они обычно не содержат файлов .dll или .exe, так что выполнения для пакетов ресурсов обычно не требуется. Важность этого различия заключается в том, что во время процесса публикации все исполняемые пакеты должны быть проверены, чтобы гарантировать, что они не содержат вредоносных программ, и этот процесс сканирования занимает больше времени для больших пакетов. Однако если пакет не является исполняемым, установка приложения гарантирует, что файлы, содержащиеся в этом пакете, не могут быть выполнены. Эта гарантия устраняет необходимость полного сканирования пакетов и значительно сокращает время сканирования вредоносных программ во время публикации приложения (и для обновлений), что делает публикацию значительно быстрее для приложений, использующих пакеты ресурсов. Обратите внимание, что пакеты приложений с плоской упаковкой также должны использоваться для получения этого преимущества публикации, поскольку это позволяет Магазину обрабатывать каждый файл пакета .appx или .msix параллельно.
Следует ли использовать пакеты ресурсов?
Обновление структуры файлов приложения для использования пакетов ресурсов может дать существенные преимущества: уменьшение размера пакета и итераций разработки. Если все пакеты архитектуры содержат значительное количество файлов, общих для всех пакетов, или если основная часть вашего приложения состоит из неисполняющих файлов, настоятельно рекомендуется инвестировать дополнительное время, чтобы перейти на использование пакетов ресурсов.
Однако следует предупредить, что пакеты ресурсов не являются средством для достижения необязательности содержимого приложения. Файлы пакетов активов не являются необязательными и всегда будут загружаться независимо от архитектуры, языка или масштабирования целевого устройства. Любое необязательное содержимое, которое требуется поддерживать приложение, должно быть реализовано с помощью необязательных пакетов.
Создание пакета активов
Самый простой способ создания пакетов ресурсов — использовать макет упаковки. Однако пакеты ресурсов также можно создавать вручную с помощью MakeAppx.exe. Чтобы указать, какие файлы необходимо включить в пакет активов, необходимо создать файл сопоставления. В этом примере единственным файлом в пакете активов является "Video.mp4", но все файлы пакета ресурсов должны быть перечислены здесь. Обратите внимание, что описатель ResourceDimensions в ResourceMetadata опущен для пакетов ресурсов (по сравнению с файлом сопоставления для пакетов ресурсов).
[ResourceMetadata]
"ResourceId" "Videos"
[Files]
"Video.mp4" "Video.mp4"
Используйте одну из этих команд для создания пакета ресурсов с помощью MakeAppx.exe (для MSIX и .appx).
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.appx
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.msix
Следует отметить, что все файлы, на которые ссылается AppxManifest (файлы логотипов), нельзя переместить в пакеты ресурсов. Эти файлы должны дублироваться в пакетах архитектуры.
Пакеты ресурсов также не должны содержать resources.pri; MRT нельзя использовать для доступа к файлам пакета ресурсов. Дополнительные сведения о том, как получить доступ к файлам пакетов ресурсов и почему пакеты ресурсов требуют установки приложения на диске NTFS, см. в статье "Разработка с помощью пакетов ресурсов и свертывания пакетов".
Чтобы контролировать, разрешено ли выполнение пакета активов, можно использовать uap6:AllowExecution в элементе Properties appxManifest. Также необходимо добавить uap6 в элемент Package верхнего уровня.
<Package IgnorableNamespaces="uap uap6"
xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
Если значение не указано, значение по умолчанию для AllowExecutionимеет значение true , задайте значение false для пакетов ресурсов без исполняемых файлов, чтобы ускорить публикацию.