Freigeben über


Bekannte Probleme mit UWP im Zusammenhang mit dem Xbox-Entwicklerprogramm

In diesem Thema werden bekannte Probleme mit dem UWP im Xbox One-Entwicklerprogramm beschrieben. Weitere Informationen zu diesem Programm finden Sie unter UWP auf Xbox.

[Wenn Sie hier aus einem Link in einem API-Referenzthema kamen und nach Informationen zur universellen Gerätefamilien-API suchen, lesen Sie UWP-Features werden auf Xbox nicht unterstützt.]

In der folgenden Liste werden einige bekannte Probleme hervorgehoben, die auftreten können, aber diese Liste ist nicht vollständig.

Wir möchten Ihr Feedback erhalten. Melden Sie daher alle Probleme, die Sie im Forum "Entwickeln von Universelle Windows-Plattform-Apps" finden.

Wenn Sie nicht weiterkommen, lesen Sie die Informationen in diesem Thema, lesen Sie häufig gestellte Fragen, und verwenden Sie die Foren, um Hilfe zu erhalten.

Die Bereitstellung von VS schlägt fehl, wenn die Jugendschutzsteuerung aktiviert ist.

Wenn die Konsole die Jugendschutzsteuerung in den Einstellungen aktiviert hat, schlägt das Starten der App über VS fehl.

Um dieses Problem zu umgehen, deaktivieren Sie die Jugendschutzmechanismen vorübergehend oder:

  1. Stellen Sie Ihre App auf der Konsole bereit, und die Jugendschutzsteuerung ist deaktiviert.
  2. Aktivieren Sie die Jugendschutzmechanismen.
  3. Starten Sie Ihre App über die Konsole.
  4. Geben Sie eine PIN oder ein Kennwort ein, damit die App gestartet werden kann.
  5. Die App wird gestartet.
  6. Schließen Sie die App.
  7. Starten Sie mit F5 von VS, und die App wird ohne Aufforderung gestartet.

An diesem Punkt bleibt die Berechtigung kurz, bis Sie den Benutzer abmelden, auch wenn Sie die App deinstallieren und erneut installieren.

Es gibt eine andere Art von Ausnahme, die nur für Kinderkonten verfügbar ist. Ein Untergeordnetes Konto erfordert, dass sich ein Elternteil anmeldet, um die Berechtigung zu erteilen, aber wenn dies der Vorgang ist, hat das Übergeordnete die Möglichkeit, dem Kind das Starten der App immer zu erlauben. Diese Ausnahme wird in der Cloud gespeichert und auch dann beibehalten, wenn sich das Kind abmeldet und sich wieder anmeldet.

StorageFile.CopyAsync kann verschlüsselte Dateien nicht in unverschlüsseltes Ziel kopieren

Wenn StorageFile.CopyAsync verwendet wird, um eine Datei zu kopieren, die an ein nicht verschlüsseltes Ziel verschlüsselt ist, schlägt der Aufruf mit der folgenden Ausnahme fehl:

System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Dies kann sich auf Xbox-Entwickler auswirken, die Dateien kopieren möchten, die als Teil ihres App-Pakets an einen anderen Speicherort bereitgestellt werden. Der Grund dafür ist, dass der Paketinhalt auf einer Xbox im Einzelhandelsmodus verschlüsselt ist, aber nicht im Dev-Modus. Daher funktioniert die App möglicherweise während der Entwicklung und beim Testen erwartungsgemäß, schlägt dann aber fehl, nachdem sie veröffentlicht und dann auf einer Xbox im Einzelhandel installiert wurde.

Blockierte Netzwerkports auf Xbox One

Universelle Windows-Plattform (UWP)-Apps auf Xbox One-Geräten sind von der Bindung an Ports im Bereich [57344, 65535], einschließlich, eingeschränkt. Obwohl die Bindung an diese Ports zur Laufzeit möglicherweise erfolgreich ist, kann der Netzwerkdatenverkehr im Hintergrund gelöscht werden, bevor Sie Ihre App erreichen. Ihre App sollte nach Möglichkeit an Port 0 gebunden werden, sodass das System den lokalen Port auswählen kann. Wenn Sie einen bestimmten Port verwenden müssen, muss sich die Portnummer im Bereich [1025, 49151] befinden, und Sie sollten Konflikte mit der IANA-Registrierung überprüfen und vermeiden. Weitere Informationen finden Sie in der Registrierung der Dienstnamen- und Transportprotokollportnummer.

Windows-Runtime API-Abdeckung

Nicht alle Windows-Runtime-APIs werden auf Xbox unterstützt. Die Liste der APIs, die wir wissen, funktionieren nicht, finden Sie unter UWP-Features, die auf Xbox nicht unterstützt werden. Wenn Sie Probleme mit anderen APIs finden, melden Sie sie bitte in den Foren.

Sie erhalten eine Warnung über das bereitgestellte Zertifikat, ähnlich dem folgenden Screenshot, da das von Ihrer Xbox One-Konsole signierte Sicherheitszertifikat nicht als bekannter vertrauenswürdiger Herausgeber gilt. Um auf das Windows Device Portal zuzugreifen, klicken Sie auf "Weiter zu dieser Website".

Warnung des Websitesicherheitszertifikats

KnownFolders.MediaServerDevices-Vorbehalt auf Xbox

Auf dem Desktop werden Medienserver mit dem PC "gekoppelt", und der Gerätezuordnungsdienst verfolgt ständig, welche der Server derzeit online sind, sodass eine anfängliche Dateisystemabfrage sofort eine Liste der gekoppelten Server zurückgeben kann, die derzeit online sind.

Auf Xbox gibt es keine Benutzeroberfläche zum Hinzufügen oder Entfernen von Servern, sodass die anfängliche Dateisystemabfrage immer leer zurückgibt. Sie müssen eine Abfrage erstellen und das ContentsChanged-Ereignis abonnieren und die Abfrage jedes Mal aktualisieren, wenn Sie eine Benachrichtigung erhalten. Server werden innerhalb von 3 Sekunden ermittelt und am meisten gefunden.

Einfacher Beispielcode:

namespace TestDNLA {

    public sealed partial class MainPage : Page {
        public MainPage() {
            this.InitializeComponent();
        }

        private async void FindFiles_Click(object sender, RoutedEventArgs e) {
            try {
                StorageFolder library = KnownFolders.MediaServerDevices;
                var folderQuery = library.CreateFolderQuery();
                folderQuery.ContentsChanged += FolderQuery_ContentsChanged;
                IReadOnlyList<StorageFolder> rootFolders = await folderQuery.GetFoldersAsync();
                if (rootFolders.Count == 0) {
                    Debug.WriteLine("No Folders found");
                } else {
                    Debug.WriteLine("Folders found");
                }
            } catch (Exception ex) {
                Debug.WriteLine("Error: " + ex.Message);
            } finally {
                Debug.WriteLine("Done");
            }
        }

        private async void FolderQuery_ContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args) {
            Debug.WriteLine("Folder added " + sender.Folder.Name);
            IReadOnlyList<StorageFolder> topLevelFolders = await sender.Folder.GetFoldersAsync();
            foreach (StorageFolder topLevelFolder in topLevelFolders) {
                Debug.WriteLine(topLevelFolder.Name);
            }
        }
    }
}

Weitere Informationen