Да, перенесение возможно. Я бы предложил создать новый проект в этом решении (большинство решений этого git уже добавили поддержку UWP, как я видел) и переделали большинство вещей. В некоторых проектах, использующих специфичный для платформы код, этот перенос может не работать, поскольку некоторые API изменились с WP8 на UWP - как вы, вероятно, знаете.
После этой процедуры у меня все еще были проблемы - у меня не было рабочего файла .appxmanifest, поэтому я не могу создать файл .pfx. Это предупреждает вас, что файл certifcate отсутствует.
Я не уверен, что все шаги необходимы. Я оставляю это в качестве домашнего задания;)
Во всяком случае, здесь я покажу вам шаги портировать TodoREST-проект в UWP:
- Разгрузка IOS и Droid проект будет сделать это проще
- удалить все пакеты NuGet от Портативный и проект WinPhone81
- изменить профиль портативного класса Profile111 (снимите КР8 Silverlight в качестве цели)
- Теперь вы можете переустановить Xamarin.Forms и Newtonsoft.Json на портативном проекта (деинсталляция необходимо изменить профиль - который был необходим клювом AUSE он поднял некоторые ошибки здесь)
- Удалить app.config из проекта WinPhone81
Добавить project.json
файл проекта WinPhone81 и поставить в следующем содержании:
{
"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": { }
}
}
Сохранить все и закрыть WinPhone81 проект
в проводнике файлов перейдите в папку и редактировать Package.appxmanifest
Обмен Тэг Пакет следующими:
<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">
... Удалить и добавить следующие вместо:
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/>
</Dependencies>
Редактировать TodoREST.WinPhone81.csproj:
В первом <PropertyGroup>
заменить <TargetPlatformVersion>
этим:
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion>
Изменение ProjectTypeGuids
в
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
На каждом PropertyGroup
с Condition=...
заменить WINDOWS_PHONE_APP
в DefineConstants по WINDOWS_UAP
- Сохранить
- Reload проект в Visual Studio
- Редактировать MainPage.xaml и изменить
<forms:WindowsPhonePage
к <forms:WindowsPage
и формирует пространство имен using:Xamarin.Forms.Platform.UWP
(от .WinRT
)
- Здесь мне пришлось перезапустить VS2015 по любой причине, он не заметил проект. json
- Запустить проект и отладить!
Надеюсь, это ответит на ваши вопросы.
Вы хотите добавить UWP (Universal Windows Platform)? Это руководство поможет вам начать работу: https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/. Похоже, что этот учебник основан на Xamarin Forms, поэтому он должен отлично работать с UWP, если вы используете последнюю версию Xamarin Forms. – dylansturg
Я знаю, что прошло какое-то время с тех пор, как я задал этот вопрос, но я вернулся к этой проблеме и до сих пор не решен. Ваш комментарий не совсем то, о чем я просил, вы можете не понимать меня правильно. Я обновил вопрос с более подробной информацией. – Piotrek
Используете ли вы Visual Studio 2013 или 2015? – NineBerry