Bekannte Probleme mit UWP im Zusammenhang mit dem Xbox-Entwicklerprogramm

Dieses Thema beschreibt bekannte Probleme im Zusammenhang mit dem Xbox One-Entwicklerprogramm. Weitere Informationen zu diesem Programm finden Sie unter UWP auf Xbox.

[Wenn Sie über einen Link in einem API-Referenzthema hierher gekommen sind und nach API-Informationen zur Universellen Gerätefamilie suchen, lesen Sie UWP-Features, die auf Xbox nicht unterstützt werden.]

In der folgenden Liste werden einige bekannte Probleme aufgelistet, die auftreten können. Diese Liste ist jedoch nicht vollständig.

Wir möchten gerne Ihr Feedback erhalten. Melden Sie daher alle festgestellten Probleme im Forum für das Entwickeln von Apps für die Universelle Windows-Plattform (UWP).

Wenn Sie Probleme haben, lesen Sie die Informationen in diesem Thema, informieren Sie sich in den häufig gestellten Fragen, und nutzen Sie die Foren, um Hilfe zu erhalten.

Fehler bei der Bereitstellung aus VS bei aktiviertem Jugendschutz

Beim Starten Ihrer App in VS tritt ein Fehler auf, wenn in den Einstellungen der Konsole der Jugendschutz aktiviert ist.

Um dieses Problem zu umgehen, deaktivieren Sie vorübergehend den Jugendschutz. Alternative:

  1. Stellen Sie Ihre App in der Konsole mit deaktiviertem Jugendschutz bereit.
  2. Aktivieren Sie den Jugendschutz.
  3. Starten Sie die App von der Konsole.
  4. Geben Sie eine PIN oder ein Kennwort ein, um das Starten der App zuzulassen.
  5. Die App wird gestartet.
  6. Schließen Sie die App.
  7. Starten Sie die App in VS mithilfe von F5. Sie wird ohne Benutzeraufforderung gestartet.

Zu diesem Zeitpunkt bleibt die Berechtigung so lange bestehen, bis Sie den Benutzer abmelden, auch wenn Sie die App deinstallieren und neu installieren.

Es gibt eine weitere Ausnahme, die nur für Kinderkonten verfügbar ist. Bei einem Kinderkonto muss sich ein Elternteil anmelden, um die Berechtigung zu erteilen. In diesem Fall kann der Elternteil die Option Immer auswählen, um dem Kind das Starten der App zu erlauben. Diese Ausnahme wird in der Cloud gespeichert und bleibt bestehen, auch wenn sich das Kind abmeldet und 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, die als Teil ihres App-Pakets bereitgestellt werden, an einen anderen Speicherort kopieren möchten. Der Grund dafür ist, dass die Paketinhalte auf einer Xbox im Einzelhandelsmodus verschlüsselt werden, aber nicht im Dev-Modus. Daher funktioniert die App während der Entwicklung und Tests möglicherweise wie erwartet, schlägt dann aber fehl, sobald sie veröffentlicht und dann auf einer Xbox im Einzelhandel installiert wurde.

Gesperrte Netzwerkports auf Xbox One

Bindungen an Ports im Bereich [57344, 65535] (einschließlich) sind für Apps für die universelle Windows-Plattform (UWP) auf Xbox One-Geräten nicht möglich. Obwohl die Bindung an diese Ports während der Laufzeit erfolgreich zu sein scheint, kann Netzwerkdatenverkehr im Hintergrund gelöscht werden, bevor er Ihre App erreicht. Ihre App sollte an den Port 0 gebunden werden, wann immer möglich. Dieser ermöglicht dem System die Auswahl des lokalen Ports. 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 Dienstname und Transportprotokoll-Portnummer-Registrierung.

Windows-Runtime API-Abdeckung

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

Sie erhalten eine Warnung zum Zertifikat, das bereitgestellt wurde, ähnlich wie folgender Screenshot, dass das von Ihrer Xbox One-Konsole signierte Sicherheitszertifikat nicht als bekannter vertrauenswürdiger Herausgeber betrachtet wird. Klicken Sie auf Laden dieser Website fortsetzen, um auf das Windows Device Portal zuzugreifen.

Warnung zum Sicherheitszertifikat der Website

KnownFolders.MediaServerDevices-Vorbehalte 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 erste 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, das ContentsChanged-Ereignis abonnieren und die Abfrage jedes Mal aktualisieren, wenn Sie eine Benachrichtigung erhalten. Server rieseln ein, und die meisten wurden innerhalb von 3 Sekunden 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);
            }
        }
    }
}

Siehe auch