Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Jeśli zamierzasz przesłać aplikację do Sklepu, musisz skontaktować się z pomocą techniczną dla deweloperów systemu Windows i uzyskać zgodę na korzystanie z pakietów zasobów.
Pakiety zasobów to typ pakietu, który działa jako scentralizowana lokalizacja dla typowych plików aplikacji — skutecznie eliminując konieczność duplikowania plików w pakietach architektury. Pakiety zasobów są podobne do pakietów zasobów, ponieważ są one zaprojektowane tak, aby zawierały zawartość statyczną wymaganą do uruchomienia aplikacji, ale różnią się od tego, że wszystkie pakiety zasobów są zawsze pobierane, niezależnie od architektury systemu użytkownika, języka lub skali wyświetlania.
Ponieważ pakiety zasobów zawierają całą architekturę, język i pliki niezależne od skalowania, wykorzystanie pakietów zasobów powoduje zmniejszenie ogólnego rozmiaru spakowanej aplikacji (ponieważ te pliki nie są już zduplikowane), ułatwiając zarządzanie lokalnym użyciem miejsca na dysku programistycznym dla dużych aplikacji i zarządzanie pakietami aplikacji w ogóle.
Jak pakiety zasobów wpływają na publikowanie?
Najbardziej oczywistą zaletą pakietów zasobów jest zmniejszenie rozmiaru spakowanych aplikacji. Mniejsze pakiety aplikacji przyspieszają proces publikowania aplikacji, pozwalając sklepowi przetwarzać mniej plików; jednak nie jest to najważniejsza zaleta pakietów zasobów.
Po utworzeniu pakietu zasobów można określić, czy pakiet powinien być dozwolony do wykonania. Ponieważ pakiety zasobów powinny zawierać tylko pliki niezależne od architektury, zazwyczaj nie zawierają żadnych plików .dll ani .exe, więc w przypadku pakietów zasobów zwykle nie trzeba wykonywać. Znaczenie tego rozróżnienia polega na tym, że podczas procesu publikowania wszystkie pakiety wykonywalne muszą być skanowane, aby upewnić się, że nie zawierają złośliwego oprogramowania, a ten proces skanowania trwa dłużej w przypadku większych pakietów. Jeśli jednak pakiet jest wyznaczony jako nie wykonywalny, instalacja aplikacji zapewni, że nie można wykonać plików zawartych w tym pakiecie. Ta gwarancja eliminuje konieczność pełnego skanowania pakietów i znacznie skróci czas skanowania złośliwego oprogramowania podczas publikowania aplikacji (a także w przypadku aktualizacji) — dzięki czemu publikowanie jest znacznie szybsze w przypadku aplikacji korzystających z pakietów zasobów. Należy pamiętać, że pakiety aplikacji w formacie flat bundle muszą być również używane do uzyskania korzyści z publikowania, ponieważ umożliwia to sklep przetwarzanie każdego pliku pakietu .appx lub .msix równolegle.
Czy należy używać pakietów zasobów?
Aktualizowanie struktury plików aplikacji w celu korzystania z pakietów zasobów może przynieść konkretne korzyści: zmniejszony rozmiar pakietu i oszczędniejsze iteracji programistyczne. Jeśli wszystkie pakiety architektury zawierają znaczną ilość plików wspólnych lub większość aplikacji składa się z plików, które nie są wykonywane, zdecydowanie zaleca się zainwestowanie dodatkowego czasu w konwersję na użycie pakietów zasobów.
Należy jednak pamiętać, że pakiety zasobów nie są sposobem na osiągnięcie opcjonalnej zawartości aplikacji. Pliki pakietu zasobów nie są opcjonalne i zawsze będą pobierane niezależnie od architektury, języka lub skali urządzenia docelowego — dowolna opcjonalna zawartość, którą aplikacja ma obsługiwać, powinna być implementowana przy użyciu opcjonalnych pakietów.
Jak utworzyć pakiet zasobów
Najprostszym sposobem tworzenia pakietów zasobów jest użycie układu pakowania. Pakiety zasobów można jednak tworzyć ręcznie przy użyciu MakeAppx.exe. Aby określić pliki do uwzględnienia w pakiecie zasobów, należy utworzyć "plik mapowania". W tym przykładzie jedynym plikiem w pakiecie zasobów jest "Video.mp4", ale wszystkie pliki pakietu zasobów powinny być wymienione tutaj. Należy pamiętać, że specyfikator ResourceDimensions w elemencie ResourceMetadata jest pomijany dla pakietów zasobów (w porównaniu z plikiem mapowania pakietów zasobów).
[ResourceMetadata]
"ResourceId" "Videos"
[Files]
"Video.mp4" "Video.mp4"
Użyj jednego z tych poleceń, aby utworzyć pakiet zasobów przy użyciu MakeAppx.exe (dla MSIX i .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
Należy zauważyć, że wszystkie pliki wymienione w pliku AppxManifest (pliki logo) nie mogą być przeniesione do pakietów zasobów — te pliki muszą być zduplikowane w pakietach dla każdej architektury.
Pakiety zasobów nie powinny również zawierać pliku resources.pri; Nie można używać zestawu narzędzi MRT do uzyskiwania dostępu do plików pakietu zasobów. Aby dowiedzieć się więcej o sposobie uzyskiwania dostępu do plików pakietu zasobów i dlaczego pakiety zasobów wymagają zainstalowania aplikacji na dysku NTFS, zobacz Tworzenie pakietów zasobów i składanie pakietów.
Aby kontrolować, czy pakiet zasobów może być wykonywany, czy nie, możesz użyć uap6:AllowExecution w elemencie Properties elementu AppxManifest. Należy również dodać uap6 do elementu Package najwyższego poziomu, aby wyglądało następująco:
<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">
Jeśli nie zostanie określona, wartość domyślna parametru AllowExecution ma wartość true — ustaw wartość false dla pakietów elementów zawartości bez plików wykonywalnych, aby publikowanie było szybsze.