Udostępnij przez


Określanie domyślnych zasobów używanych przez aplikację

Jeśli aplikacja nie ma zasobów, które pasują do określonych ustawień urządzenia klienta, zostaną użyte domyślne zasoby aplikacji. W tym temacie wyjaśniono, jak określić, jakie są te zasoby domyślne.

Gdy klient zainstaluje aplikację ze Sklepu Microsoft, ustawienia na urządzeniu klienta są zgodne z dostępnymi zasobami aplikacji. To dopasowanie jest wykonywane tak, aby tylko odpowiednie zasoby musiały zostać pobrane i zainstalowane dla tego użytkownika. Na przykład są używane najbardziej odpowiednie ciągi i obrazy preferencji językowych użytkownika oraz ustawienia rozdzielczości i dpi urządzenia. Na przykład 200 jest wartością domyślną scale, ale możesz zastąpić to ustawienie domyślne, jeśli chcesz.

Nawet w przypadku zasobów, które nie przechodzą do własnych pakietów zasobów (takich jak obrazy dostosowane do ustawień dużego kontrastu), możesz określić, jakich zasobów domyślnych aplikacja powinna używać w czasie wykonywania, jeśli nie można odnaleźć zasobu zgodnego z ustawieniami użytkownika. Na przykład standard jest wartością domyślną contrast, ale możesz zastąpić to ustawienie domyślne, jeśli chcesz.

Te wartości domyślne są określane w postaci domyślnych wartości kwalifikatora zasobów. Aby uzyskać wyjaśnienie, jakie są kwalifikatory zasobów, ich użycie i przeznaczenie, zobacz Dostosowywanie zasobów na potrzeby języka, skalowania, dużego kontrastu i innych kwalifikatorów.

Te wartości domyślne można skonfigurować na jeden z dwóch sposobów. Możesz dodać plik konfiguracji do projektu lub bezpośrednio edytować plik projektu. Użyj dowolnej z tych opcji, z którymi najlepiej korzystasz, lub w zależności od tego, która z nich działa najlepiej w systemie kompilacji.

Opcja 1. Użyj priconfig.default.xml, aby określić domyślne wartości kwalifikatora

  1. W programie Visual Studio dodaj nowy element do projektu. Wybierz pozycję Plik XML i nadaj plikowi nazwę priconfig.default.xml.

  2. W Eksploratorze rozwiązań wybierz pozycję priconfig.default.xml i zaznacz okno Właściwości. Akcja kompilacji pliku powinna być ustawiona na Wartość Brak, a opcja Kopiuj do katalogu wyjściowego powinna być ustawiona na Nie kopiuj.

  3. Zastąp zawartość pliku tym plikiem XML.

    <default>
       <qualifier name="Language" value="LANGUAGE-TAG(S)" />
       <qualifier name="Contrast" value="standard" />
       <qualifier name="Scale" value="200" />
       <qualifier name="HomeRegion" value="001" />
       <qualifier name="TargetSize" value="256" />
       <qualifier name="LayoutDirection" value="LTR" />
       <qualifier name="DXFeatureLevel" value="DX9" />
       <qualifier name="Configuration" value="" />
       <qualifier name="AlternateForm" value="" />
    </default>
    

    Uwaga Wartość LANGUAGE-TAG(S) musi być zsynchronizowana z domyślnym językiem aplikacji. Jeśli jest to pojedynczy tag języka BCP-47 , to domyślny język aplikacji musi być opisany tym samym tagiem. Jeśli jest to rozdzielona przecinkami lista tagów języka, domyślny język aplikacji musi być pierwszym tagiem na liście. Domyślny język aplikacji można ustawić w polu domyślny język na karcie Aplikacja w pliku źródłowym manifestu pakietu aplikacji (Package.appxmanifest).

  4. Każdy element <qualifier> informuje program Visual Studio, jakiej wartości należy użyć jako wartości domyślnej dla każdej nazwy kwalifikatora. W przypadku zawartości pliku, którą masz do tej pory, nie zmieniono zachowania programu Visual Studio. Innymi słowy, program Visual Studio zachowywał się tak, jakby ten plik był obecny z tą zawartością, ponieważ to domyślne wartości. Aby zastąpić wartość domyślną swoją własną wartością, musisz zmienić wartość w pliku. Oto przykład sposobu, w jaki plik może wyglądać, jeśli edytowano pierwsze trzy wartości.

    <default>
       <qualifier name="Language" value="de-DE" />
       <qualifier name="Contrast" value="black" />
       <qualifier name="Scale" value="400" />
       <qualifier name="HomeRegion" value="001" />
       <qualifier name="TargetSize" value="256" />
       <qualifier name="LayoutDirection" value="LTR" />
       <qualifier name="DXFeatureLevel" value="DX9" />
       <qualifier name="Configuration" value="" />
       <qualifier name="AlternateForm" value="" />
    </default>
    
  5. Zapisz i zamknij plik i skompiluj projekt.

Aby potwierdzić, że zastępowane wartości domyślne są brane pod uwagę, poszukaj pliku <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml i upewnij się, że jego zawartość odpowiada Twoim nadpisaniom. Jeśli tak, to pomyślnie skonfigurowano wartości kwalifikatora zasobów, których aplikacja będzie używać domyślnie. Jeśli nie można odnaleźć dopasowania ustawień użytkownika, zasoby będą używane, których nazwy folderów lub plików zawierają domyślne wartości kwalifikatora ustawione w tym miejscu.

Jak to działa?

W tle program Visual Studio uruchamia narzędzie o nazwie MakePri.exe w celu wygenerowania pliku znanego jako indeks zasobów pakietu (PRI), który opisuje wszystkie zasoby aplikacji, w tym wskazujące, które są zasobami domyślnymi. Aby uzyskać szczegółowe informacje na temat tego narzędzia, zobacz Ręczne kompilowanie zasobów przy użyciu MakePri.exe. Program Visual Studio przekazuje plik konfiguracji do MakePri.exe. Zawartość pliku priconfig.default.xml jest używana jako element <default> tego pliku konfiguracji, który jest częścią określającą zestaw wartości kwalifikatora, które są uważane za domyślne. Dlatego dodanie i edytowanie priconfig.default.xml ostatecznie wpływa na zawartość pliku indeksu zasobów pakietu, który jest generowany przez program Visual Studio dla aplikacji i zawarty w jej pakiecie.

Uwaga Za każdym razem, gdy zmienisz wartość elementu <qualifier name="Language" ... />, musisz zsynchronizować zmianę z domyślnym językiem aplikacji. Dzięki temu zasoby językowe indeksowane w pliku PRI aplikacji są zgodne z domyślnym językiem manifestu aplikacji. Wartość elementu <qualifier name="Language" ... /> zastępuje wartość w manifeście w odniesieniu do zawartości <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml, ale plik i manifest aplikacji powinny być zgodne.

Używanie innej nazwy pliku niż priconfig.default.xml

Jeśli nadasz plikowi nazwę priconfig.default.xml, program Visual Studio rozpozna go i użyje go automatycznie. Jeśli nadasz mu inną nazwę, musisz poinformować program Visual Studio. W pliku projektu między tagami otwierania i zamykania pierwszego elementu <PropertyGroup> dodaj ten kod XML.

<AppxPriConfigXmlDefaultSnippetPath>FILE-PATH-AND-NAME</AppxPriConfigXmlDefaultSnippetPath>

Zastąp FILE-PATH-AND-NAME ścieżką do i nazwą pliku.

Opcja 2. Użyj pliku projektu, aby określić domyślne wartości kwalifikatora

Jest to alternatywa dla opcji 1. Gdy zrozumiesz, jak działa opcja 1, możesz zdecydować się na wybór opcji 2, jeśli bardziej pasuje do twojego przepływu pracy w zakresie rozwoju i/lub kompilacji.

W pliku projektu między tagami otwierania i zamykania pierwszego elementu <PropertyGroup> dodaj ten kod XML.

<AppxDefaultResourceQualifiers>Language=LANGUAGE-TAG(S)|Contrast=standard|Scale=200|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>

Oto przykład sposobu, w jaki może to wyglądać po zmodyfikowaniu pierwszych trzech wartości.

<AppxDefaultResourceQualifiers>Language=de-DE|Contrast=black|Scale=400|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>

Zapisz, zamknij i odbuduj swój projekt.

Uwaga Za każdym razem, gdy zmienisz wartość Language=, musisz zsynchronizować zmianę z domyślnym językiem aplikacji w projektancie manifestu (otwierając Package.appxmanifest).