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.
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
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
Utilizzi Visual Studio 2013 o 2015? – NineBerry