Aracılığıyla paylaş


Varlık paketlerine giriş

Önemli

Uygulamanızı Mağaza'ya göndermek istiyorsanız Windows geliştirici desteğine başvurmanız ve varlık paketlerini kullanmak için onay almanız gerekir.

Varlık paketleri, bir uygulamanın ortak dosyaları için merkezi bir konum görevi üstlenen bir paket türüdür ve mimari paketleri boyunca yinelenen dosyalar için gerekliliği etkili bir şekilde ortadan kaldırır. Varlık paketleri, her ikisi de uygulamanızın çalışması için gereken statik içeriği içerecek şekilde tasarlanmış olan kaynak paketlerine benzer, ancak kullanıcının sistem mimarisine, diline veya görüntüleme ölçeğine bakılmaksızın tüm varlık paketlerinin her zaman indirilmeleri farklıdır.

Varlık Demet Paketi Diyagramı

Varlık paketleri tüm mimari, dil ve ölçek bağımsız dosyaları içerdiğinden, varlık paketlerinden yararlanıldığında paketlenmiş uygulamanın genel boyutu azalır (bu dosyalar artık çoğaltılmadığından), büyük uygulamalar için yerel geliştirme disk alanı kullanımınızı yönetmenize ve uygulamanızın paketlerini genel olarak yönetmenize yardımcı olur.

Varlık paketleri yayımlamayı nasıl etkiler?

Varlık paketlerinin en belirgin avantajı, paketlenmiş uygulamaların boyutunun küçültülmesidir. Daha küçük uygulama paketleri, Mağaza'nın daha az dosya işlemesine izin vererek uygulamanın yayımlama sürecini hızlandırmaktadır; ancak bu, varlık paketlerinin en önemli avantajı değildir.

Bir varlık paketi oluşturulduğunda, paketin yürütülmesine izin verilip verilmeyeceğini belirtebilirsiniz. Varlık paketleri yalnızca mimariden bağımsız dosyalar içermesi gerektiğinden, genellikle herhangi bir .dll veya .exe dosyası içermez, bu nedenle varlık paketlerinin genellikle yürütülmesi gerekmez. Bu ayrımın önemi, yayımlama işlemi sırasında tüm yürütülebilir paketlerin kötü amaçlı yazılım içermediğinden emin olmak için taranması ve daha büyük paketler için bu tarama işleminin daha uzun sürmesidir. Ancak, bir paket yürütülemez olarak belirlenirse, uygulamanın yüklenmesi bu pakette yer alan dosyaların yürütülememesini sağlar. Bu garanti, eksiksiz bir paket taraması gereksinimini ortadan kaldırır ve uygulamanın yayımlanması sırasında kötü amaçlı yazılım tarama süresini büyük ölçüde azaltır (ve güncelleştirmeler için de) bu sayede varlık paketlerini kullanan uygulamalar için yayımlamayı önemli ölçüde hızlandırır. Bu yayımlama avantajını elde etmek için düz paket uygulama paketlerinin de kullanılması gerektiğini unutmayın çünkü Mağaza'nın her .appx veya .msix paket dosyasını paralel olarak işlemesine olanak tanır.

Varlık paketlerini kullanmalımıyım?

Varlık paketlerinin kullanımından yararlanmak için uygulamanızın dosya yapısını güncelleştirmek somut avantajlara neden olabilir: daha az paket boyutu ve daha yalın geliştirme yinelemeleri. Mimari paketlerinizin tümü önemli miktarda ortak dosya içeriyorsa veya uygulamanızın büyük bir kısmı yürütülmeyen dosyalardan oluşuyorsa, varlık paketlerini kullanmaya dönüştürmek için fazladan zaman harcamanız kesinlikle önerilir.

Ancak, varlık paketlerinin uygulama içeriği isteğe bağlılığını elde etmek için bir araç olmadığı konusunda dikkatli olunmalıdır. Varlık paketi dosyaları isteğe bağlı değildir ve hedef cihazın mimarisinden, dilinden veya ölçeğinden bağımsız olarak her zaman indirilir. Uygulamanızın desteklemesini istediğiniz tüm isteğe bağlı içerikler isteğe bağlı paketler kullanılarak uygulanmalıdır.

Varlık paketi oluşturma

Varlık paketleri oluşturmanın en kolay yolu paketleme düzenini kullanmaktır. Ancak, varlık paketleri MakeAppx.exekullanılarak el ile de oluşturulabilir. Varlık paketine eklenecek dosyaları belirtmek için bir "eşleme dosyası" oluşturmanız gerekir. Bu örnekte, varlık paketindeki tek dosya "Video.mp4" şeklindedir, ancak varlık paketinin tüm dosyaları burada listelenmelidir. ResourceMetadata içindeki ResourceDimensions tanımlayıcısının varlık paketleri için atlandığını unutmayın (kaynak paketleri için eşleme dosyasıyla karşılaştırıldığında).

[ResourceMetadata]
"ResourceId"        "Videos"

[Files]
"Video.mp4"         "Video.mp4"

MakeAppx.exe kullanarak varlık paketini oluşturmak için bu komutlardan birini kullanın (MSIX ve .appx için).

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

Burada AppxManifest'te başvurulan tüm dosyaların (logo dosyaları) varlık paketlerine taşınamayacağı belirtilmelidir; bu dosyalar mimari paketleri arasında çoğaltılmalıdır.

Varlık paketleri de resources.pri içermemelidir; MRT, varlık paketi dosyalarına erişmek için kullanılamaz. Varlık paketi dosyalarına erişme ve varlık paketlerinin neden uygulamanızın bir NTFS sürücüsüne yüklenmesini gerektirdiği hakkında daha fazla bilgi edinmek için bkz. Varlık paketleri ve paket katlama ile geliştirme.

Bir varlık paketinin yürütülmesine izin verilip verilmeyeceğini denetlemek için, AppxManifest'in Properties öğesinde uap6:AllowExecution kullanabilirsiniz Ayrıca en üst düzey Paket öğesine uap6 eklemeli ve aşağıdakilere dönüşmelisiniz:

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

Belirtilmezse AllowExecution için varsayılan değer true olur; yürütülebilir dosyası olmayan varlık paketlerinin yayımlamayı daha hızlı hale getirmesi için bunu false olarak ayarlayın.