Problemi noti della piattaforma UWP nel programma per sviluppatori Xbox

Questo argomento descrive i problemi noti della piattaforma UWP nel programma per sviluppatori Xbox One. Per altre informazioni su questo programma, vedi UWP su Xbox.

[Se accedi a questa pagina da un link presente in un argomento di riferimento sulle API e cerchi informazioni sulle API per la famiglia di dispositivi universali, vedi Funzionalità UWP non ancora supportate in Xbox.]

L'elenco seguente evidenzia alcuni problemi noti che potresti riscontrare, ma non è un elenco completo.

Poiché il tuo feedback è importante per noi, ti invitiamo a segnalarci tutti i problemi riscontrati nel forum sullo Sviluppo di app UWP (Universal Windows Platform).

In caso di problemi che ti impediscono di continuare, leggi le informazioni contenute in questo argomento, vedi le domande frequenti e usa i forum per chiedere assistenza.

La distribuzione da Visual Studio non riesce con Controllo genitori attivato

Se Controllo genitori è attivato in Impostazioni nella console, l'avvio della tua app da Visual Studio non sarà possibile.

Per risolvere questo problema, disabilita temporaneamente Controllo genitori, oppure:

  1. Distribuisci la tua app nella console con l'opzione Controllo genitori disattivata.
  2. Attiva Controllo genitori.
  3. Avvia l'app dalla console.
  4. Immetti un PIN o una password per consentire l'avvio dell'app.
  5. L'app verrà avviata.
  6. Chiudi l'app.
  7. Esegui l'avvio da Visual Studio con F5 e l'app verrà avviata senza richieste.

A questo punto l'autorizzazione è permanente fino a quando non disconnetti l'utente, anche se disinstalli e reinstalli l'app.

Esiste un altro tipo di esenzione che è disponibile solo per gli account per bambini. Per un account per bambini è necessario che un genitore esegua l'accesso per concedere l'autorizzazione, ma in questo caso il genitore ha la possibilità di scegliere Sempre per consentire al bambino di avviare sempre l'app. Questa esenzione viene archiviata nel cloud e verrà mantenuta anche se il bambino si disconnette ed effettua di nuovo l'accesso.

StorageFile.CopyAsync non riesce a copiare file crittografati nella destinazione non crittografata

Quando StorageFile.CopyAsync viene utilizzato per copiare un file crittografato in una destinazione che non è crittografata, la chiamata non riuscirà con l'eccezione seguente:

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

Questo può influire sugli sviluppatori di Xbox che vogliono copiare i file distribuiti come parte del proprio pacchetto di app in un'altra posizione. Il motivo è che i contenuti del pacchetto vengono crittografati su una Xbox in modalità demo negozio, ma non in modalità sviluppatore. Di conseguenza, l'app potrebbe sembrare che funzioni come previsto durante lo sviluppo e il test, ma in seguito non funziona una volta che è stato pubblicata e poi installata in una Xbox commerciale.

Porte di rete bloccate su Xbox One

Per le app UWP (Universal Windows Platform) su dispositivi Xbox One non è consentito il binding alle porte nell'intervallo [57344, 65535], inclusivo. Anche se il binding a queste porte potrebbe sembrare riuscito in fase di esecuzione, il traffico di rete può essere ignorato senza avviso prima di raggiungere l'app. L'app deve essere associata alla porta 0 quando possibile, che consente al sistema di selezionare la porta locale. Se devi usare una porta specifica, il numero della porta deve essere compreso nell'intervallo [1025, 49151] e devi controllare ed evitare conflitti con il registro IANA. Per altre informazioni, vedi Service Name and Transport Protocol Port Number Registry.

Disponibilità delle API UWP

Non tutte le API UWP sono supportate in Xbox. Per un elenco delle API che sappiamo non funzionare, vedi Funzionalità UWP non ancora supportate in Xbox. Se si verificano problemi con altre API, segnalali nei forum.

Riceverai un avviso sul certificato fornito, simile allo screenshot seguente, perché il certificato di sicurezza firmato dalla tua console Xbox One non è considerato un editore attendibile noto. Per accedere a Windows Device Portal, fai clic su Passa a questa pagina Web.

Avviso per il certificato di sicurezza del sito Web

Avvertenza KnownFolders.MediaServerDevices su Xbox

Su desktop, i server multimediali sono "associati" al PC e il servizio associazione dispositivi monitora costantemente i server attualmente online, pertanto una query del file system iniziale può immediatamente restituire un elenco dei server associati attualmente online.

Su Xbox non esiste un'interfaccia utente per aggiungere o rimuovere server, pertanto la query del file system iniziale non restituirà alcun risultato. È necessario creare una query ed effettuare la sottoscrizione all'evento ContentsChanged, quindi aggiornare la query ogni volta che viene visualizzata una notifica. I server inizieranno ad apparire e la maggior parte di essi verrà individuata entro 3 secondi.

Codice di esempio semplice:

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);
            }
        }
    }
}

Vedi anche