Angeben der von der App verwendeten Standardressourcen
Wenn Ihre App nicht über Ressourcen verfügt, die den speziellen Einstellungen eines Kundengeräts entsprechen, werden die Standardressourcen der App verwendet. In diesem Thema wird erläutert, wie Sie diese Standardressourcen festlegen.
Wenn ein Kunde Ihre App aus dem Microsoft Store installiert, werden die Einstellungen auf dem Gerät des Kunden mit den verfügbaren Ressourcen der App abgeglichen. Dieser Abgleich erfolgt, damit nur die entsprechenden Ressourcen für diesen Benutzer heruntergeladen und installiert werden müssen. Beispielsweise werden die am besten geeigneten Zeichenfolgen und Bilder für die Spracheinstellungen des Benutzers und die Auflösungs- und DPI-Einstellungen des Geräts verwendet. Ist beispielsweise 200
der Standardwert für scale
, aber Sie können diese Standardeinstellung bei Bedarf überschreiben.
Auch für Ressourcen, die nicht in ihre eigenen Ressourcenpakete wechseln (z. B. Bilder, die auf Einstellungen mit hohem Kontrast zugeschnitten sind), können Sie angeben, welche Standardressourcen die App zur Laufzeit verwenden soll, wenn eine Ressource, die den Einstellungen des Benutzers entspricht, nicht gefunden werden kann. Ist beispielsweise standard
der Standardwert für contrast
, aber Sie können diese Standardeinstellung bei Bedarf überschreiben.
Diese Standardwerte werden in Form von Standardressourcenqualifizierernwerten angegeben. Eine Erläuterung der Ressourcenqualifizierer, deren Verwendung und Zweck finden Sie unter Anpassen der Ressourcen für Sprache, Skalierung, hohen Kontrast und andere Qualifizierer.
Sie können konfigurieren, was diese Standardwerte auf eine von zwei Arten sind. Sie können ihrem Projekt entweder eine Konfigurationsdatei hinzufügen oder Ihre Projektdatei direkt bearbeiten. Verwenden Sie die optionen, mit denen Sie am besten vertraut sind, oder welche Option am besten mit Ihrem Buildsystem funktioniert.
Option 1. Verwenden von priconfig.default.xml zum Angeben von Standardqualifizierernwerten
Fügen Sie in Visual Studio ihrem Projekt ein neues Element hinzu. Wählen Sie XML-Datei aus, und benennen Sie die Datei
priconfig.default.xml
.Aktivieren Und überprüfen Sie
priconfig.default.xml
in Projektmappen-Explorer die Eigenschaftenfenster. Die Buildaktion der Datei sollte auf "Keine" festgelegt werden, und "In Ausgabeverzeichnis kopieren" sollte auf "Nicht kopieren" festgelegt werden.Ersetzen Sie den Inhalt der Datei durch diesen XML-Code.
<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>
Hinweis : Der Wert
LANGUAGE-TAG(S)
muss mit der Standardsprache Ihrer App synchronisiert werden. Wenn es sich um ein einzelnes BCP-47-Sprachtag handelt, muss die Standardsprache Ihrer App dasselbe Tag sein. Wenn es sich um eine durch Trennzeichen getrennte Liste von Sprachtags handelt, muss die Standardsprache Ihrer App das erste Tag in der Liste sein. Sie legen die Standardsprache Ihrer App im Feld "Standardsprache " auf der Registerkarte "Anwendung " in der Quelldatei des App-Paketmanifests (Package.appxmanifest
) fest.Jedes
<qualifier>
Element teilt Visual Studio mit, welcher Wert als Standard für jeden Qualifizierernamen verwendet werden soll. Mit den bisher gespeicherten Dateiinhalten haben Sie das Verhalten von Visual Studio nicht geändert. Mit anderen Worten, Visual Studio verhält sich bereits so, als ob diese Datei mit diesen Inhalten vorhanden wäre, da dies die Standardstandardwerte sind. Um also einen Standardwert mit Ihrem eigenen Standardwert außer Kraft zu setzen, müssen Sie einen Wert in der Datei ändern. Hier ist ein Beispiel dafür, wie die Datei aussehen könnte, wenn Sie die ersten drei Werte bearbeitet haben.<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>
Speichern und schließen Sie die Datei, und erstellen Sie Ihr Projekt neu.
Um zu bestätigen, dass ihre überschriebenen Standardwerte berücksichtigt werden, suchen Sie nach der Datei <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml
, und vergewissern Sie sich, dass der Inhalt Ihren Außerkraftsetzungen entspricht. Andernfalls haben Sie die Qualifiziererwerte der Ressourcen, die Ihre App standardmäßig verwendet, erfolgreich konfiguriert. Wenn eine Übereinstimmung für die Einstellungen des Benutzers nicht gefunden wird, werden Ressourcen verwendet, deren Ordner- oder Dateinamen die Standardqualifiziererwerte enthalten, die Sie hier festgelegt haben.
Wie funktioniert das?
Im Hintergrund startet Visual Studio ein Tool, das zum Generieren einer Datei namens Package Resource Index (PRI) benannt MakePri.exe
wird, die alle Ressourcen Ihrer App beschreibt, einschließlich der Angabe, welche Die Standardressourcen sind. Ausführliche Informationen zu diesem Tool finden Sie unter Manuelles Kompilieren von Ressourcen mit MakePri.exe. Visual Studio übergibt eine Konfigurationsdatei an MakePri.exe
. Der Inhalt der priconfig.default.xml
Datei wird als <default>
Element dieser Konfigurationsdatei verwendet, bei dem es sich um den Teil handelt, der den Satz von Qualifiziererwerten angibt, die als Standard angesehen werden. Das Hinzufügen und Bearbeiten priconfig.default.xml
beeinflusst also letztendlich den Inhalt der Paketressourcenindexdatei, die Visual Studio für Ihre App generiert und in das App-Paket einschließt.
Hinweis: Wenn Sie den Wert des <qualifier name="Language" ... />
Elements ändern, müssen Sie diese Änderung mit der Standardsprache Ihrer App synchronisieren. Dies ist so, dass die in der PRI-Datei Ihrer App indizierten Sprachressourcen mit der Manifeststandardsprache Ihrer App übereinstimmen. Der Wert im <qualifier name="Language" ... />
Element setzt den Wert im Manifest im Hinblick auf den Inhalt außer <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml
Kraft, diese Datei und das App-Manifest sollte jedoch übereinstimmen.
Verwenden eines anderen Dateinamens als priconfig.default.xml
Wenn Sie Ihre Datei priconfig.default.xml
benennen, erkennt Visual Studio sie und verwendet sie automatisch. Wenn Sie ihm einen anderen Namen geben, müssen Sie Visual Studio informieren. Fügen Sie in der Projektdatei zwischen den öffnenden und schließenden Tags des ersten <PropertyGroup>
Elements diesen XML-Code hinzu.
<AppxPriConfigXmlDefaultSnippetPath>FILE-PATH-AND-NAME</AppxPriConfigXmlDefaultSnippetPath>
Ersetzen Sie FILE-PATH-AND-NAME
die Datei durch den Pfad zu und den Namen der Datei.
Option 2. Verwenden der Projektdatei zum Angeben von Standardqualifizierernwerten
Dies ist eine Alternative zu Option 1. Sobald Sie wissen, wie Option 1 funktioniert, können Sie stattdessen Option 2 ausführen, wenn dies zu Ihrem Entwicklungs- und/oder Buildworkflow passt.
Fügen Sie in der Projektdatei zwischen den öffnenden und schließenden Tags des ersten <PropertyGroup>
Elements diesen XML-Code hinzu.
<AppxDefaultResourceQualifiers>Language=LANGUAGE-TAG(S)|Contrast=standard|Scale=200|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>
Hier ist ein Beispiel dafür, wie dies aussehen könnte, nachdem Sie die ersten drei Werte bearbeitet haben.
<AppxDefaultResourceQualifiers>Language=de-DE|Contrast=black|Scale=400|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>
Speichern und schließen Sie es, und erstellen Sie Ihr Projekt neu.
Hinweis: Wenn Sie den Language=
Wert ändern, müssen Sie diese Änderung mit der Standardsprache Ihrer App im Manifest-Designer (durch Öffnen Package.appxmanifest
) synchronisieren.