2016-04-09 20 views
7

Sto provando a eseguire uno dei campioni from this site.Porting Xamarin Applicazione Windows 8 a Windows 10 SDK

Il problema è: i progetti sono stati creati per Windows 8. Quando apro la soluzione in Visual Studio, mi dice che devo installare l'SDK di Windows 8 per procedere.

enter image description here

sto usando ora di Windows 10 SDK e non voglio più utilizzare SDK 8, quindi preferisco non installare questo SDK e utilizzare nuova intead. Posso in qualche modo portare questo progetto all'app Windows 10?

come sembra in questo momento:

enter image description here

+2

Stai cercando di aggiungere UWP (Universal Windows Platform)? Questo tutorial dovrebbe aiutarti ad iniziare: https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/. Sembra che il tutorial sia basato su Xamarin Forms, quindi dovrebbe funzionare bene con UWP se si utilizza una versione recente di Xamarin Forms. – dylansturg

+0

So che è passato un po 'di tempo da quando ho fatto questa domanda, ma sono tornato a questo problema e non è ancora stato risolto. Il tuo commento non è esattamente quello che ho chiesto, potresti non capirmi correttamente. Ho aggiornato la domanda con qualche altro dettaglio. – Piotrek

+0

Utilizzi Visual Studio 2013 o 2015? – NineBerry

risposta

10

Sì, il porting è possibile. Vorrei suggerire di creare un nuovo progetto in questa soluzione (la maggior parte delle soluzioni di questo git ha già aggiunto il supporto UWP, come ho visto) e ripetere la maggior parte delle cose. Su alcuni progetti che utilizzano un codice specifico della piattaforma, questo porting potrebbe non funzionare poiché alcune API sono state modificate da WP8 a UWP, come probabilmente saprai.

Dopo questa procedura ho ancora avuto problemi - non avevo nessun file .appxmanifest funzionante, quindi non riesco a creare un file .pfx. Questo ti avvisa che il file certifcate è mancante.

Non sono sicuro che tutti i passaggi siano necessari. Lascio questo come compito a casa;)

ogni modo, qui vi mostro passi per la porta del TodoREST-progetto per UWP:

  • iOS scarico e progetto Droid renderà questo più facile
  • Disinstallare tutti i pacchetti Nuget da
  • Modifica profilo classe portatile Portatile e progetto WinPhone81 a Profile111 (deselezionare WP8 Silverlight come target)
  • Ora è possibile reinstallare Xamarin.Forms e Newtonsoft.Json su progetto portatile (disinstallazione stato necessario modificare il profilo - che era necessaria bec ause ha sollevato alcuni errori qui)
  • Rimuovere app.config dal progetto WinPhone81
  • Aggiungere un file project.json il progetto WinPhone81 e mettere in seguente contenuto:

    { 
        "dependencies": { 
         "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0", 
         "Xamarin.Forms": "2.0.0.6482" 
        }, 
        "frameworks": { 
         "uap10.0": { } 
        }, 
        "runtimes": { 
         "win10-arm": { }, 
         "win10-arm-aot": { }, 
         "win10-x86": { }, 
         "win10-x86-aot": { }, 
         "win10-x64": { }, 
         "win10-x64-aot": { } 
        } 
    } 
    
  • Salva tutto e vicino WinPhone81 progetto

  • Nel file explorer vai alla cartella e modificare Package.appxmanifest

    • Cambio Tag pacchetto seguendo:

      <Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:m3="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="m3 mp"> 
      
    • Rimuovere ... e aggiungere seguente invece:

      <Dependencies> 
          <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/> 
      </Dependencies> 
      
  • Modifica TodoREST.WinPhone81.csproj:

    • In primo <PropertyGroup> sostituire <TargetPlatformVersion> da questo:

      <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> 
      <TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion> 
      <TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion> 
      
    • Change ProjectTypeGuids a

      <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
      
    • Su ogni PropertyGroup con Condition=... sostituire WINDOWS_PHONE_APP in DefineConstants da WINDOWS_UAP

    • Salva
  • progetto Reload in Visual Studio
  • Modifica MainPage.xaml e cambiare <forms:WindowsPhonePage a <forms:WindowsPage e forma dello spazio dei nomi a using:Xamarin.Forms.Platform.UWP (da .WinRT)
  • Qui ho dovuto riavviare VS2015 per qualsiasi ragione non ha notato il progetto.json
  • Avvia il progetto e fai il debug!

Spero che questo risponda alle vostre domande.